~ubuntu-branches/ubuntu/utopic/aufs/utopic

« back to all changes in this revision

Viewing changes to fs/aufs/vdir.c

  • Committer: Bazaar Package Importer
  • Author(s): Julian Andres Klode
  • Date: 2007-06-04 15:17:03 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20070604151703-ur9mjtbbpwoga2y6
Tags: 0+20070605-1
* New upstream snapshot
* Remove unionctl

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
17
 */
18
18
 
19
 
/* $Id: vdir.c,v 1.21 2007/05/07 03:46:08 sfjro Exp $ */
 
19
/* $Id: vdir.c,v 1.24 2007/06/04 02:17:35 sfjro Exp $ */
20
20
 
21
21
#include "aufs.h"
22
22
 
42
42
#endif
43
43
        }
44
44
 
45
 
        DEBUG_ON(sz % sizeof(ino_t));
 
45
        AuDebugOn(sz % sizeof(ino_t));
46
46
        return sz;
47
47
}
48
48
 
240
240
                vdir->vd_last.p.p = p.p;
241
241
                deblk_end.deblk = p.deblk + 1;
242
242
                err = set_deblk_end(&p, &deblk_end);
243
 
                DEBUG_ON(err);
 
243
                AuDebugOn(err);
244
244
        }
245
245
 
246
246
 out:
295
295
        p.deblk = vdir->vd_deblk[0];
296
296
        deblk_end.deblk = p.deblk + 1;
297
297
        err = set_deblk_end(&p, &deblk_end);
298
 
        DEBUG_ON(err);
 
298
        AuDebugOn(err);
299
299
        vdir->vd_version = 0;
300
300
        vdir->vd_jiffy = 0;
301
301
        vdir->vd_last.i = 0;
358
358
        p.deblk = last_deblk(vdir);
359
359
        deblk_end.deblk = p.deblk + 1;
360
360
        room = &vdir->vd_last.p;
361
 
        DEBUG_ON(room->p < p.p || deblk_end.p <= room->p
362
 
                 || !is_deblk_end(room, &deblk_end));
 
361
        AuDebugOn(room->p < p.p || deblk_end.p <= room->p
 
362
                  || !is_deblk_end(room, &deblk_end));
363
363
 
364
364
        sz = calc_size(namelen);
365
365
        if (unlikely(sz > deblk_end.p - room->p)) {
369
369
                p.deblk = last_deblk(vdir);
370
370
                deblk_end.deblk = p.deblk + 1;
371
371
                //smp_mb();
372
 
                DEBUG_ON(room->p != p.p);
 
372
                AuDebugOn(room->p != p.p);
373
373
        }
374
374
 
375
375
        err = -ENOMEM;
425
425
        arg->err = 0;
426
426
        arg->called++;
427
427
        //smp_mb();
428
 
        if (namelen <= AUFS_WH_LEN || memcmp(name, AUFS_WH_PFX, AUFS_WH_LEN)) {
 
428
        if (namelen <= AUFS_WH_PFX_LEN
 
429
            || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
429
430
                for (bindex = 0; bindex < bend; bindex++)
430
431
                        if (test_known(arg->delist + bindex, name, namelen)
431
432
                            || test_known_wh(arg->whlist + bindex, name,
444
445
                        if (h_inode) {
445
446
                                if (!is_bad_inode(h_inode)) {
446
447
                                        xino.h_gen = h_inode->i_generation;
447
 
                                        WARN_ON(xino.h_gen == AuXino_INVALID_HGEN);
 
448
                                        WARN_ON(xino.h_gen
 
449
                                                == AuXino_INVALID_HGEN);
448
450
                                }
449
451
                                iput(h_inode);
450
452
                        }
455
457
                        arg->err = append_de(arg->vdir, name, namelen, xino.ino,
456
458
                                             d_type, arg->delist + bend);
457
459
        } else {
458
 
                name += AUFS_WH_LEN;
459
 
                namelen -= AUFS_WH_LEN;
 
460
                name += AUFS_WH_PFX_LEN;
 
461
                namelen -= AUFS_WH_PFX_LEN;
460
462
                for (bindex = 0; bindex < bend; bindex++)
461
463
                        if (test_known_wh(arg->whlist + bend, name, namelen))
462
464
                                goto out; /* already whiteouted */
488
490
        inode = dentry->d_inode;
489
491
        IMustLock(inode);
490
492
        IiMustWriteLock(inode);
491
 
        DEBUG_ON(!S_ISDIR(inode->i_mode));
 
493
        AuDebugOn(!S_ISDIR(inode->i_mode));
492
494
 
493
495
        err = 0;
494
496
        allocated = NULL;
497
499
        expire = stosi(sb)->si_rdcache;
498
500
        vdir = ivdir(inode);
499
501
        if (!vdir) {
500
 
                DEBUG_ON(fvdir_cache(file));
 
502
                AuDebugOn(fvdir_cache(file));
501
503
                do_read = 1;
502
504
                vdir = alloc_vdir();
503
505
                err = PTR_ERR(vdir);
590
592
        int err, i, rerr, n;
591
593
 
592
594
        TraceEnter();
593
 
        DEBUG_ON(tgt->vd_nblk != 1);
 
595
        AuDebugOn(tgt->vd_nblk != 1);
594
596
        //DbgVdir(tgt);
595
597
 
596
598
        err = -ENOMEM;
641
643
        FiMustWriteLock(file);
642
644
        inode = dentry->d_inode;
643
645
        IiMustWriteLock(inode);
644
 
        DEBUG_ON(!S_ISDIR(inode->i_mode));
 
646
        AuDebugOn(!S_ISDIR(inode->i_mode));
645
647
 
646
648
        err = read_vdir(file, !file->f_pos);
647
649
        if (unlikely(err))
700
702
        dentry = file->f_dentry;
701
703
        LKTRTrace("%.*s, pos %Ld\n", DLNPair(dentry), file->f_pos);
702
704
        vdir_cache = fvdir_cache(file);
703
 
        DEBUG_ON(!vdir_cache);
 
705
        AuDebugOn(!vdir_cache);
704
706
        //DbgVdir(vdir_cache);
705
707
 
706
708
        valid = 1;
758
760
        dentry = file->f_dentry;
759
761
        LKTRTrace("%.*s, pos %Ld\n", DLNPair(dentry), file->f_pos);
760
762
        vdir_cache = fvdir_cache(file);
761
 
        DEBUG_ON(!vdir_cache);
 
763
        AuDebugOn(!vdir_cache);
762
764
        //DbgVdir(vdir_cache);
763
765
 
764
766
        if (!seek_vdir(file))