NFS: Remove nfs_page_group_clear_bits()
At this point, we only expect ever to potentially see PG_REMOVE and PG_TEARDOWN being set on the subrequests. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
5b2b5187fa
commit
902a4c0046
1 changed files with 3 additions and 26 deletions
|
@ -347,22 +347,6 @@ static void nfs_end_page_writeback(struct nfs_page *req)
|
||||||
clear_bdi_congested(inode_to_bdi(inode), BLK_RW_ASYNC);
|
clear_bdi_congested(inode_to_bdi(inode), BLK_RW_ASYNC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* nfs_page_group_clear_bits
|
|
||||||
* @req - an nfs request
|
|
||||||
* clears all page group related bits from @req
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
nfs_page_group_clear_bits(struct nfs_page *req)
|
|
||||||
{
|
|
||||||
clear_bit(PG_TEARDOWN, &req->wb_flags);
|
|
||||||
clear_bit(PG_UNLOCKPAGE, &req->wb_flags);
|
|
||||||
clear_bit(PG_UPTODATE, &req->wb_flags);
|
|
||||||
clear_bit(PG_WB_END, &req->wb_flags);
|
|
||||||
clear_bit(PG_REMOVE, &req->wb_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* nfs_unroll_locks_and_wait - unlock all newly locked reqs and wait on @req
|
* nfs_unroll_locks_and_wait - unlock all newly locked reqs and wait on @req
|
||||||
*
|
*
|
||||||
|
@ -417,13 +401,12 @@ nfs_destroy_unlinked_subrequests(struct nfs_page *destroy_list,
|
||||||
/* make sure old group is not used */
|
/* make sure old group is not used */
|
||||||
subreq->wb_this_page = subreq;
|
subreq->wb_this_page = subreq;
|
||||||
|
|
||||||
|
clear_bit(PG_REMOVE, &subreq->wb_flags);
|
||||||
|
|
||||||
/* Note: races with nfs_page_group_destroy() */
|
/* Note: races with nfs_page_group_destroy() */
|
||||||
if (!kref_read(&subreq->wb_kref)) {
|
if (!kref_read(&subreq->wb_kref)) {
|
||||||
bool freeme = test_bit(PG_TEARDOWN, &subreq->wb_flags);
|
|
||||||
|
|
||||||
nfs_page_group_clear_bits(subreq);
|
|
||||||
/* Check if we raced with nfs_page_group_destroy() */
|
/* Check if we raced with nfs_page_group_destroy() */
|
||||||
if (freeme)
|
if (test_and_clear_bit(PG_TEARDOWN, &subreq->wb_flags))
|
||||||
nfs_free_request(subreq);
|
nfs_free_request(subreq);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -437,7 +420,6 @@ nfs_destroy_unlinked_subrequests(struct nfs_page *destroy_list,
|
||||||
spin_unlock(&inode->i_lock);
|
spin_unlock(&inode->i_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
nfs_page_group_clear_bits(subreq);
|
|
||||||
/* subreq is now totally disconnected from page group or any
|
/* subreq is now totally disconnected from page group or any
|
||||||
* write / commit lists. last chance to wake any waiters */
|
* write / commit lists. last chance to wake any waiters */
|
||||||
nfs_unlock_and_release_request(subreq);
|
nfs_unlock_and_release_request(subreq);
|
||||||
|
@ -573,11 +555,6 @@ try_again:
|
||||||
spin_unlock(&inode->i_lock);
|
spin_unlock(&inode->i_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* prepare head request to be added to new pgio descriptor
|
|
||||||
*/
|
|
||||||
nfs_page_group_clear_bits(head);
|
|
||||||
|
|
||||||
nfs_page_group_unlock(head);
|
nfs_page_group_unlock(head);
|
||||||
|
|
||||||
nfs_destroy_unlinked_subrequests(destroy_list, head, inode);
|
nfs_destroy_unlinked_subrequests(destroy_list, head, inode);
|
||||||
|
|
Loading…
Reference in a new issue