diff options
Diffstat (limited to 'fs/attr.c')
-rw-r--r-- | fs/attr.c | 5 |
1 files changed, 1 insertions, 4 deletions
@@ -233,16 +233,13 @@ int notify_change(struct dentry * dentry, struct iattr * attr) | |||
233 | return error; | 233 | return error; |
234 | 234 | ||
235 | if (ia_valid & ATTR_SIZE) | 235 | if (ia_valid & ATTR_SIZE) |
236 | down_write(&dentry->d_inode->i_alloc_sem); | 236 | inode_dio_wait(inode); |
237 | 237 | ||
238 | if (inode->i_op->setattr) | 238 | if (inode->i_op->setattr) |
239 | error = inode->i_op->setattr(dentry, attr); | 239 | error = inode->i_op->setattr(dentry, attr); |
240 | else | 240 | else |
241 | error = simple_setattr(dentry, attr); | 241 | error = simple_setattr(dentry, attr); |
242 | 242 | ||
243 | if (ia_valid & ATTR_SIZE) | ||
244 | up_write(&dentry->d_inode->i_alloc_sem); | ||
245 | |||
246 | if (!error) | 243 | if (!error) |
247 | fsnotify_change(dentry, ia_valid); | 244 | fsnotify_change(dentry, ia_valid); |
248 | 245 | ||