Message ID | 502E6386.700@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Aug 17, 2012 at 11:30:14PM +0800, Liu Bo wrote: > IMO the following is better, just make use of the original check. If you agree with this, > I'll send it as a patch :) I think it's cleaner to keep all flags that get inherited from the directory -> new file at one place, ie btrfs_inherit_iflags(), than having them scattered over the code. > > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index 6e8f416..d4e58df 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -4721,8 +4721,10 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, > if (btrfs_test_opt(root, NODATASUM)) > BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; > if (btrfs_test_opt(root, NODATACOW) || > - (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) > + (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) { > BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; > + BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; > + } > } And even better, this particular check of dir->flags should be removed entirely, because it duplicates the equivalent in btrfs_inherit_iflags(). > > insert_inode_hash(inode); david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 08/21/2012 10:33 PM, David Sterba wrote: > On Fri, Aug 17, 2012 at 11:30:14PM +0800, Liu Bo wrote: >> IMO the following is better, just make use of the original check. If you agree with this, >> I'll send it as a patch :) > > I think it's cleaner to keep all flags that get inherited from the > directory -> new file at one place, ie btrfs_inherit_iflags(), than > having them scattered over the code. > >> >> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c >> index 6e8f416..d4e58df 100644 >> --- a/fs/btrfs/inode.c >> +++ b/fs/btrfs/inode.c >> @@ -4721,8 +4721,10 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, >> if (btrfs_test_opt(root, NODATASUM)) >> BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; >> if (btrfs_test_opt(root, NODATACOW) || >> - (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) >> + (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) { >> BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; >> + BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; >> + } >> } > > And even better, this particular check of dir->flags should be removed > entirely, because it duplicates the equivalent in > btrfs_inherit_iflags(). > Fine, it's cleaner now. thanks, liubo >> >> insert_inode_hash(inode); > > > david > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 6e8f416..d4e58df 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -4721,8 +4721,10 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, if (btrfs_test_opt(root, NODATASUM)) BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; if (btrfs_test_opt(root, NODATACOW) || - (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) + (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) { BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; + BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; + } } insert_inode_hash(inode);