summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2010-04-21 14:05:55 +0800
committerJoel Becker <joel.becker@oracle.com>2010-04-23 14:43:22 -0700
commitc21a534e2f24968cf74976a4e721ac194db30ded (patch)
treeed095a19d91fa586912366aeb4c91852f131fa97 /fs/ocfs2
parent0350cb078f5035716ebdad4ad4709d02fe466a8a (diff)
downloadop-kernel-dev-c21a534e2f24968cf74976a4e721ac194db30ded.zip
op-kernel-dev-c21a534e2f24968cf74976a4e721ac194db30ded.tar.gz
ocfs2: Update VFS inode's id info after reflink.
In reflink we update the id info on the disk but forgot to update the corresponding information in the VFS inode. Update them accordingly when we want to preserve the attributes. Reported-by: Jeff Liu <jeff.liu@oracle.com> Signed-off-by: Tao Ma <tao.ma@oracle.com> Cc: <stable@kernel.org> Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/refcounttree.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
index 29405f2..32a8ac5 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -4084,6 +4084,9 @@ static int ocfs2_complete_reflink(struct inode *s_inode,
di->i_attr = s_di->i_attr;
if (preserve) {
+ t_inode->i_uid = s_inode->i_uid;
+ t_inode->i_gid = s_inode->i_gid;
+ t_inode->i_mode = s_inode->i_mode;
di->i_uid = s_di->i_uid;
di->i_gid = s_di->i_gid;
di->i_mode = s_di->i_mode;
OpenPOWER on IntegriCloud