diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-06-21 21:15:01 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-08-11 00:08:00 -0400 |
commit | 8cef9c67356eca3e6502444c8075a06c86872abf (patch) | |
tree | d98de53b2f22488f898cd200fe341c4355b4a342 /fs/9p | |
parent | b34d8915c413acb51d837a45fb8747b61f65c020 (diff) |
v9fs: fixup for inode_setattr being removed
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/9p')
-rw-r--r-- | fs/9p/vfs_inode.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index d97c34a24f7a..c7c23eab9440 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
@@ -1263,10 +1263,19 @@ static int v9fs_vfs_setattr_dotl(struct dentry *dentry, struct iattr *iattr) | |||
1263 | return PTR_ERR(fid); | 1263 | return PTR_ERR(fid); |
1264 | 1264 | ||
1265 | retval = p9_client_setattr(fid, &p9attr); | 1265 | retval = p9_client_setattr(fid, &p9attr); |
1266 | if (retval >= 0) | 1266 | if (retval < 0) |
1267 | retval = inode_setattr(dentry->d_inode, iattr); | 1267 | return retval; |
1268 | 1268 | ||
1269 | return retval; | 1269 | if ((iattr->ia_valid & ATTR_SIZE) && |
1270 | iattr->ia_size != i_size_read(dentry->d_inode)) { | ||
1271 | retval = vmtruncate(dentry->d_inode, iattr->ia_size); | ||
1272 | if (retval) | ||
1273 | return retval; | ||
1274 | } | ||
1275 | |||
1276 | setattr_copy(dentry->d_inode, iattr); | ||
1277 | mark_inode_dirty(dentry->d_inode); | ||
1278 | return 0; | ||
1270 | } | 1279 | } |
1271 | 1280 | ||
1272 | /** | 1281 | /** |