summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/file.c
diff options
context:
space:
mode:
authorMark Fasheh <mark.fasheh@oracle.com>2007-05-10 00:16:19 +0200
committerMark Fasheh <mark.fasheh@oracle.com>2007-07-11 02:31:51 +0200
commit7307de80510a70e5e5aa98de1e80ccbb7d90a3a8 (patch)
treeba45bef3e0b875feb67b97aebe8295159852ef97 /fs/ocfs2/file.c
parentocfs2: factor out write aops into nolock variants (diff)
downloadlinux-7307de80510a70e5e5aa98de1e80ccbb7d90a3a8.tar.xz
linux-7307de80510a70e5e5aa98de1e80ccbb7d90a3a8.zip
ocfs2: shared writeable mmap
Implement cluster consistent shared writeable mappings using the ->page_mkwrite() callback. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/file.c')
-rw-r--r--fs/ocfs2/file.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 4c850d00c269..a80f31776d94 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1001,6 +1001,13 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
goto bail_unlock;
}
+ /*
+ * This will intentionally not wind up calling vmtruncate(),
+ * since all the work for a size change has been done above.
+ * Otherwise, we could get into problems with truncate as
+ * ip_alloc_sem is used there to protect against i_size
+ * changes.
+ */
status = inode_setattr(inode, attr);
if (status < 0) {
mlog_errno(status);