2008-05-01 17:14:31

by Benny Halevy

[permalink] [raw]
Subject: [PATCH] nfs: fix race in nfs_dirty_request

From: Fred Isaman <[email protected]>

When called from nfs_flush_incompatible, the req is not locked, so
req->wb_page might be set to NULL before it is used by PageWriteback.

Signed-off-by: Fred Isaman <[email protected]>
Signed-off-by: Benny Halevy <[email protected]>
---
fs/nfs/write.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index bed6341..04f15c7 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -428,7 +428,7 @@ nfs_dirty_request(struct nfs_page *req)

if (page == NULL || test_bit(PG_NEED_COMMIT, &req->wb_flags))
return 0;
- return !PageWriteback(req->wb_page);
+ return !PageWriteback(page);
}

#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
--
1.5.3.3