diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 08eb34fa36e1a0bb7ee85acca582a2e2871f0db5..3fa5fc803b81964253ee126c2ce68250d95b97a6 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -1815,7 +1815,8 @@ void ll_update_inode(struct inode *inode, struct lustre_md *md) if (body->valid & OBD_MD_FLGID) inode->i_gid = body->gid; if (body->valid & OBD_MD_FLFLAGS) - inode->i_flags = ll_ext_to_inode_flags(body->flags); + inode->i_flags = ll_ext_to_inode_flags(body->flags | + MDS_BFLAG_EXT_FLAGS); if (body->valid & OBD_MD_FLNLINK) inode->i_nlink = body->nlink; if (body->valid & OBD_MD_FLGENER) diff --git a/lustre/mds/mds_lib.c b/lustre/mds/mds_lib.c index 78b5d1027334242b541d940a437b4ec4cd6eff53..4aa3864ab5f414d9fabfec6b66076650269f7814 100644 --- a/lustre/mds/mds_lib.c +++ b/lustre/mds/mds_lib.c @@ -93,9 +93,7 @@ void mds_pack_inode2body(struct mds_body *b, struct inode *inode) b->blocks = inode->i_blocks; b->uid = inode->i_uid; b->gid = inode->i_gid; - b->flags = (b->flags & MDS_BFLAG_EXT_FLAGS) | - ll_inode_to_ext_flags(inode->i_flags, - !(b->flags & MDS_BFLAG_EXT_FLAGS)); + b->flags = ll_inode_to_ext_flags(inode->i_flags, MDS_BFLAG_EXT_FLAGS); b->rdev = inode->i_rdev; /* Return the correct link count for orphan inodes */ b->nlink = mds_inode_is_orphan(inode) ? 0 : inode->i_nlink;