]> Pileus Git - ~andy/linux/blobdiff - fs/ecryptfs/inode.c
Merge remote branch 'benh/merge' into benh-next
[~andy/linux] / fs / ecryptfs / inode.c
index 2c19d362d2d43df09def800c4d72ba678328074b..4d4cc6a90cd57f18b330674f8e5320205cc2a5e6 100644 (file)
@@ -929,6 +929,12 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia)
                }
        }
        mutex_unlock(&crypt_stat->cs_mutex);
+       if (S_ISREG(inode->i_mode)) {
+               rc = filemap_write_and_wait(inode->i_mapping);
+               if (rc)
+                       goto out;
+               fsstack_copy_attr_all(inode, lower_inode);
+       }
        memcpy(&lower_ia, ia, sizeof(lower_ia));
        if (ia->ia_valid & ATTR_FILE)
                lower_ia.ia_file = ecryptfs_file_to_lower(ia->ia_file);