--- linux-2.6.16-rc4/fs/ext2/namei.c 2006-02-18 14:40:21 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/ext2/namei.c 2006-02-17 23:26:32 +0100 @@ -82,6 +83,7 @@ static struct dentry *ext2_lookup(struct inode = iget(dir->i_sb, ino); if (!inode) return ERR_PTR(-EACCES); + dx_propagate_tag(nd, inode); } return d_splice_alias(inode, dentry); } --- linux-2.6.16-rc4/fs/ext3/namei.c 2006-02-18 14:40:22 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/ext3/namei.c 2006-02-17 23:26:32 +0100 @@ -1004,6 +1005,7 @@ static struct dentry *ext3_lookup(struct if (!inode) return ERR_PTR(-EACCES); + dx_propagate_tag(nd, inode); } return d_splice_alias(inode, dentry); } --- linux-2.6.16-rc4/fs/jfs/namei.c 2006-01-03 17:29:57 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/jfs/namei.c 2006-02-17 23:26:32 +0100 @@ -1465,6 +1466,7 @@ static struct dentry *jfs_lookup(struct return ERR_PTR(-EACCES); } + dx_propagate_tag(nd, ip); dentry = d_splice_alias(ip, dentry); if (dentry && (JFS_SBI(dip->i_sb)->mntflag & JFS_OS2)) --- linux-2.6.16-rc4/fs/nfs/dir.c 2006-02-18 14:40:23 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/nfs/dir.c 2006-02-17 23:26:32 +0100 @@ -869,6 +871,7 @@ static struct dentry *nfs_lookup(struct inode = nfs_fhget(dentry->d_sb, &fhandle, &fattr); if (!inode) goto out_unlock; + dx_propagate_tag(nd, inode); no_entry: res = d_add_unique(dentry, inode); if (res != NULL) --- linux-2.6.16-rc4/fs/reiserfs/namei.c 2006-02-18 14:40:26 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/reiserfs/namei.c 2006-02-17 23:26:32 +0100 @@ -365,6 +366,7 @@ static struct dentry *reiserfs_lookup(st reiserfs_write_unlock(dir->i_sb); return ERR_PTR(-EACCES); } + dx_propagate_tag(nd, inode); /* Propogate the priv_object flag so we know we're in the priv tree */ if (is_reiserfs_priv_object(dir)) --- linux-2.6.16-rc4/fs/reiserfs/namei.c 2006-02-18 14:40:26 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/reiserfs/namei.c 2006-02-17 23:26:32 +0100 @@ -600,6 +602,7 @@ static int new_inode_init(struct inode * } else { inode->i_gid = current->fsgid; } + inode->i_tag = dx_current_fstag(inode->i_sb); DQUOT_INIT(inode); return 0; } --- linux-2.6.16-rc4/fs/xfs/linux-2.6/xfs_iops.c 2006-02-18 14:40:27 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/xfs/linux-2.6/xfs_iops.c 2006-02-17 23:26:32 +0100 @@ -410,6 +411,7 @@ linvfs_lookup( d_add(dentry, NULL); return NULL; } + dx_propagate_tag(nd, LINVFS_GET_IP(cvp)); return d_splice_alias(LINVFS_GET_IP(cvp), dentry); } --- linux-2.6.16-rc4/fs/xfs/linux-2.6/xfs_linux.h 2006-02-18 14:40:27 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/xfs/linux-2.6/xfs_linux.h 2006-02-17 23:26:32 +0100 @@ -133,6 +133,7 @@ BUFFER_FNS(PrivateStart, unwritten); #define current_pid() (current->pid) #define current_fsuid(cred) (current->fsuid) #define current_fsgid(cred) (current->fsgid) +#define current_fstag(cred,vp) (dx_current_fstag(LINVFS_GET_IP(vp)->i_sb)) #define NBPP PAGE_SIZE #define DPPSHFT (PAGE_SHIFT - 9) --- linux-2.6.16-rc4/fs/xfs/xfs_inode.c 2006-02-18 14:40:27 +0100 +++ linux-2.6.16-rc4-vs2.1.1-rc8/fs/xfs/xfs_inode.c 2006-02-17 23:26:32 +0100 @@ -1125,6 +1145,7 @@ xfs_ialloc( ASSERT(ip->i_d.di_nlink == nlink); ip->i_d.di_uid = current_fsuid(cr); ip->i_d.di_gid = current_fsgid(cr); + ip->i_d.di_tag = current_fstag(cr, vp); ip->i_d.di_projid = prid; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));