--- linux-2.6.16-rc1/fs/ext2/namei.c 2006-01-26 22:35:11 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/ext2/namei.c 2006-01-25 05:34:51 +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-rc1/fs/ext3/namei.c 2006-01-26 22:35:11 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/ext3/namei.c 2006-01-25 05:34:51 +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-rc1/fs/jfs/namei.c 2006-01-03 17:29:57 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/jfs/namei.c 2006-01-25 05:34:51 +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-rc1/fs/nfs/dir.c 2006-01-26 22:35:12 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/nfs/dir.c 2006-01-28 03:38:24 +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-rc1/fs/reiserfs/namei.c 2006-01-26 22:35:13 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/reiserfs/namei.c 2006-01-25 05:34:51 +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-rc1/fs/reiserfs/namei.c 2006-01-26 22:35:13 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/reiserfs/namei.c 2006-01-25 05:34:51 +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-rc1/fs/xfs/linux-2.6/xfs_iops.c 2006-01-26 22:35:13 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/xfs/linux-2.6/xfs_iops.c 2006-01-25 05:34:51 +0100 @@ -396,6 +397,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-rc1/fs/xfs/linux-2.6/xfs_linux.h 2006-01-26 22:35:13 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/xfs/linux-2.6/xfs_linux.h 2006-01-25 05:34:51 +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-rc1/fs/xfs/xfs_inode.c 2006-01-26 22:35:13 +0100 +++ linux-2.6.16-rc1-vs2.1.0.9.4/fs/xfs/xfs_inode.c 2006-01-25 05:34:51 +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));