diff options
| -rw-r--r-- | fs/9p/vfs_addr.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c index adaf6f6dd858..e1cbdfdb7c68 100644 --- a/fs/9p/vfs_addr.c +++ b/fs/9p/vfs_addr.c | |||
| @@ -310,9 +310,13 @@ static int v9fs_write_end(struct file *filp, struct address_space *mapping, | |||
| 310 | 310 | ||
| 311 | p9_debug(P9_DEBUG_VFS, "filp %p, mapping %p\n", filp, mapping); | 311 | p9_debug(P9_DEBUG_VFS, "filp %p, mapping %p\n", filp, mapping); |
| 312 | 312 | ||
| 313 | if (unlikely(copied < len && !PageUptodate(page))) { | 313 | if (!PageUptodate(page)) { |
| 314 | copied = 0; | 314 | if (unlikely(copied < len)) { |
| 315 | goto out; | 315 | copied = 0; |
| 316 | goto out; | ||
| 317 | } else if (len == PAGE_SIZE) { | ||
| 318 | SetPageUptodate(page); | ||
| 319 | } | ||
| 316 | } | 320 | } |
| 317 | /* | 321 | /* |
| 318 | * No need to use i_size_read() here, the i_size | 322 | * No need to use i_size_read() here, the i_size |
