diff options
author | Weston Andros Adamson <dros@primarydata.com> | 2014-07-11 10:20:45 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-07-12 16:51:41 -0400 |
commit | 17089a29a25a3bfe8d14520cd866b7d635ffe5ba (patch) | |
tree | 9f95e42cf5a06bd36089d7f81f47d23ba2b6530d /fs/nfs/pagelist.c | |
parent | 74adf83f5d7720925499b4938f930591f947b660 (diff) |
nfs: mark nfs_page reqs with flag for extra ref
Change the use of PG_INODE_REF - set it when taking extra reference on
subrequests and take care to only release once for each request.
Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/pagelist.c')
-rw-r--r-- | fs/nfs/pagelist.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index b6ee3a6ee96d..7368b2130a41 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c | |||
@@ -251,8 +251,10 @@ nfs_page_group_init(struct nfs_page *req, struct nfs_page *prev) | |||
251 | /* grab extra ref if head request has extra ref from | 251 | /* grab extra ref if head request has extra ref from |
252 | * the write/commit path to handle handoff between write | 252 | * the write/commit path to handle handoff between write |
253 | * and commit lists */ | 253 | * and commit lists */ |
254 | if (test_bit(PG_INODE_REF, &prev->wb_head->wb_flags)) | 254 | if (test_bit(PG_INODE_REF, &prev->wb_head->wb_flags)) { |
255 | set_bit(PG_INODE_REF, &req->wb_flags); | ||
255 | kref_get(&req->wb_kref); | 256 | kref_get(&req->wb_kref); |
257 | } | ||
256 | } | 258 | } |
257 | } | 259 | } |
258 | 260 | ||