diff options
Diffstat (limited to 'fs/cifs/inode.c')
| -rw-r--r-- | fs/cifs/inode.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 13fb59aadebc..478003644916 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
| @@ -2257,6 +2257,11 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs) | |||
| 2257 | * the flush returns error? | 2257 | * the flush returns error? |
| 2258 | */ | 2258 | */ |
| 2259 | rc = filemap_write_and_wait(inode->i_mapping); | 2259 | rc = filemap_write_and_wait(inode->i_mapping); |
| 2260 | if (is_interrupt_error(rc)) { | ||
| 2261 | rc = -ERESTARTSYS; | ||
| 2262 | goto out; | ||
| 2263 | } | ||
| 2264 | |||
| 2260 | mapping_set_error(inode->i_mapping, rc); | 2265 | mapping_set_error(inode->i_mapping, rc); |
| 2261 | rc = 0; | 2266 | rc = 0; |
| 2262 | 2267 | ||
| @@ -2400,6 +2405,11 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs) | |||
| 2400 | * the flush returns error? | 2405 | * the flush returns error? |
| 2401 | */ | 2406 | */ |
| 2402 | rc = filemap_write_and_wait(inode->i_mapping); | 2407 | rc = filemap_write_and_wait(inode->i_mapping); |
| 2408 | if (is_interrupt_error(rc)) { | ||
| 2409 | rc = -ERESTARTSYS; | ||
| 2410 | goto cifs_setattr_exit; | ||
| 2411 | } | ||
| 2412 | |||
| 2403 | mapping_set_error(inode->i_mapping, rc); | 2413 | mapping_set_error(inode->i_mapping, rc); |
| 2404 | rc = 0; | 2414 | rc = 0; |
| 2405 | 2415 | ||
