aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/dir.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-07-04 21:21:08 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-07-04 21:21:08 +0000
commit58615e0586bb5d8f17cdd4ec71f4b8c2a1497f3b (patch)
tree2737649ce6b4268d4d566a210e7f0bf83784984b /kernel/dir.c
parent014d7d28269067df7c23aa174da84f9f7930de2b (diff)
downloadlibfuse-58615e0586bb5d8f17cdd4ec71f4b8c2a1497f3b.tar.gz
fix
Diffstat (limited to 'kernel/dir.c')
-rw-r--r--kernel/dir.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/dir.c b/kernel/dir.c
index aa31295..f0a5aa6 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -724,11 +724,16 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr)
{
struct inode *inode = entry->d_inode;
struct fuse_conn *fc = INO_FC(inode);
- struct fuse_req *req = fuse_get_request(fc);
+ struct fuse_req *req;
struct fuse_setattr_in inarg;
struct fuse_attr_out outarg;
int err;
-
+
+ /* FIXME: need to fix race between truncate and writepage */
+ if (attr->ia_valid & ATTR_SIZE)
+ fuse_sync_inode(inode);
+
+ req = fuse_get_request(fc);
if (!req)
return -ERESTARTSYS;