ocfs2: Update VFS inode's id info after reflink.
authorTao Ma <tao.ma@oracle.com>
Wed, 21 Apr 2010 06:05:55 +0000 (14:05 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 21:57:03 +0000 (14:57 -0700)
commit c21a534e2f24968cf74976a4e721ac194db30ded upstream.

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>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/ocfs2/refcounttree.c

index 3a0df7a1b8109666b92dea616c1b45ce57a2add9..03a1ab83a65b08544c0b9c7493431b0a122ab35a 100644 (file)
@@ -3995,6 +3995,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;