diff options
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index f12cb31a41e5..d09c9f878141 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -238,9 +238,9 @@ out: | |||
238 | } | 238 | } |
239 | 239 | ||
240 | /* A writeback failed: mark the page as bad, and invalidate the page cache */ | 240 | /* A writeback failed: mark the page as bad, and invalidate the page cache */ |
241 | static void nfs_set_pageerror(struct page *page) | 241 | static void nfs_set_pageerror(struct address_space *mapping) |
242 | { | 242 | { |
243 | nfs_zap_mapping(page_file_mapping(page)->host, page_file_mapping(page)); | 243 | nfs_zap_mapping(mapping->host, mapping); |
244 | } | 244 | } |
245 | 245 | ||
246 | /* | 246 | /* |
@@ -994,7 +994,7 @@ static void nfs_write_completion(struct nfs_pgio_header *hdr) | |||
994 | nfs_list_remove_request(req); | 994 | nfs_list_remove_request(req); |
995 | if (test_bit(NFS_IOHDR_ERROR, &hdr->flags) && | 995 | if (test_bit(NFS_IOHDR_ERROR, &hdr->flags) && |
996 | (hdr->good_bytes < bytes)) { | 996 | (hdr->good_bytes < bytes)) { |
997 | nfs_set_pageerror(req->wb_page); | 997 | nfs_set_pageerror(page_file_mapping(req->wb_page)); |
998 | nfs_context_set_write_error(req->wb_context, hdr->error); | 998 | nfs_context_set_write_error(req->wb_context, hdr->error); |
999 | goto remove_req; | 999 | goto remove_req; |
1000 | } | 1000 | } |
@@ -1348,7 +1348,8 @@ int nfs_updatepage(struct file *file, struct page *page, | |||
1348 | unsigned int offset, unsigned int count) | 1348 | unsigned int offset, unsigned int count) |
1349 | { | 1349 | { |
1350 | struct nfs_open_context *ctx = nfs_file_open_context(file); | 1350 | struct nfs_open_context *ctx = nfs_file_open_context(file); |
1351 | struct inode *inode = page_file_mapping(page)->host; | 1351 | struct address_space *mapping = page_file_mapping(page); |
1352 | struct inode *inode = mapping->host; | ||
1352 | int status = 0; | 1353 | int status = 0; |
1353 | 1354 | ||
1354 | nfs_inc_stats(inode, NFSIOS_VFSUPDATEPAGE); | 1355 | nfs_inc_stats(inode, NFSIOS_VFSUPDATEPAGE); |
@@ -1366,7 +1367,7 @@ int nfs_updatepage(struct file *file, struct page *page, | |||
1366 | 1367 | ||
1367 | status = nfs_writepage_setup(ctx, page, offset, count); | 1368 | status = nfs_writepage_setup(ctx, page, offset, count); |
1368 | if (status < 0) | 1369 | if (status < 0) |
1369 | nfs_set_pageerror(page); | 1370 | nfs_set_pageerror(mapping); |
1370 | else | 1371 | else |
1371 | __set_page_dirty_nobuffers(page); | 1372 | __set_page_dirty_nobuffers(page); |
1372 | out: | 1373 | out: |