mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
NFS: Remove the redundant 'dirty' and 'commit' lists from nfs_inode
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
5c36968343
commit
2aefa10431
4 changed files with 2 additions and 14 deletions
|
@ -1149,14 +1149,11 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag
|
||||||
|
|
||||||
inode_init_once(&nfsi->vfs_inode);
|
inode_init_once(&nfsi->vfs_inode);
|
||||||
spin_lock_init(&nfsi->req_lock);
|
spin_lock_init(&nfsi->req_lock);
|
||||||
INIT_LIST_HEAD(&nfsi->dirty);
|
|
||||||
INIT_LIST_HEAD(&nfsi->commit);
|
|
||||||
INIT_LIST_HEAD(&nfsi->open_files);
|
INIT_LIST_HEAD(&nfsi->open_files);
|
||||||
INIT_LIST_HEAD(&nfsi->access_cache_entry_lru);
|
INIT_LIST_HEAD(&nfsi->access_cache_entry_lru);
|
||||||
INIT_LIST_HEAD(&nfsi->access_cache_inode_lru);
|
INIT_LIST_HEAD(&nfsi->access_cache_inode_lru);
|
||||||
INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC);
|
INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC);
|
||||||
atomic_set(&nfsi->data_updates, 0);
|
atomic_set(&nfsi->data_updates, 0);
|
||||||
nfsi->ndirty = 0;
|
|
||||||
nfsi->ncommit = 0;
|
nfsi->ncommit = 0;
|
||||||
nfsi->npages = 0;
|
nfsi->npages = 0;
|
||||||
nfs4_init_once(nfsi);
|
nfs4_init_once(nfsi);
|
||||||
|
|
|
@ -459,7 +459,6 @@ nfs_mark_request_commit(struct nfs_page *req)
|
||||||
struct nfs_inode *nfsi = NFS_I(inode);
|
struct nfs_inode *nfsi = NFS_I(inode);
|
||||||
|
|
||||||
spin_lock(&nfsi->req_lock);
|
spin_lock(&nfsi->req_lock);
|
||||||
nfs_list_add_request(req, &nfsi->commit);
|
|
||||||
nfsi->ncommit++;
|
nfsi->ncommit++;
|
||||||
set_bit(PG_NEED_COMMIT, &(req)->wb_flags);
|
set_bit(PG_NEED_COMMIT, &(req)->wb_flags);
|
||||||
radix_tree_tag_set(&nfsi->nfs_page_tree,
|
radix_tree_tag_set(&nfsi->nfs_page_tree,
|
||||||
|
@ -581,8 +580,6 @@ nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, u
|
||||||
res = nfs_scan_list(nfsi, dst, idx_start, npages,
|
res = nfs_scan_list(nfsi, dst, idx_start, npages,
|
||||||
NFS_PAGE_TAG_COMMIT);
|
NFS_PAGE_TAG_COMMIT);
|
||||||
nfsi->ncommit -= res;
|
nfsi->ncommit -= res;
|
||||||
if ((nfsi->ncommit == 0) != list_empty(&nfsi->commit))
|
|
||||||
printk(KERN_ERR "NFS: desynchronized value of nfs_i.ncommit.\n");
|
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,12 +156,9 @@ struct nfs_inode {
|
||||||
* This is the list of dirty unwritten pages.
|
* This is the list of dirty unwritten pages.
|
||||||
*/
|
*/
|
||||||
spinlock_t req_lock;
|
spinlock_t req_lock;
|
||||||
struct list_head dirty;
|
|
||||||
struct list_head commit;
|
|
||||||
struct radix_tree_root nfs_page_tree;
|
struct radix_tree_root nfs_page_tree;
|
||||||
|
|
||||||
unsigned int ndirty,
|
unsigned int ncommit,
|
||||||
ncommit,
|
|
||||||
npages;
|
npages;
|
||||||
|
|
||||||
/* Open contexts for shared mmap writes */
|
/* Open contexts for shared mmap writes */
|
||||||
|
|
|
@ -34,8 +34,7 @@
|
||||||
|
|
||||||
struct nfs_inode;
|
struct nfs_inode;
|
||||||
struct nfs_page {
|
struct nfs_page {
|
||||||
struct list_head wb_list, /* Defines state of page: */
|
struct list_head wb_list; /* Defines state of page: */
|
||||||
*wb_list_head; /* read/write/commit */
|
|
||||||
struct page *wb_page; /* page to read in/write out */
|
struct page *wb_page; /* page to read in/write out */
|
||||||
struct nfs_open_context *wb_context; /* File state context info */
|
struct nfs_open_context *wb_context; /* File state context info */
|
||||||
atomic_t wb_complete; /* i/os we're waiting for */
|
atomic_t wb_complete; /* i/os we're waiting for */
|
||||||
|
@ -118,7 +117,6 @@ static inline void
|
||||||
nfs_list_add_request(struct nfs_page *req, struct list_head *head)
|
nfs_list_add_request(struct nfs_page *req, struct list_head *head)
|
||||||
{
|
{
|
||||||
list_add_tail(&req->wb_list, head);
|
list_add_tail(&req->wb_list, head);
|
||||||
req->wb_list_head = head;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,7 +130,6 @@ nfs_list_remove_request(struct nfs_page *req)
|
||||||
if (list_empty(&req->wb_list))
|
if (list_empty(&req->wb_list))
|
||||||
return;
|
return;
|
||||||
list_del_init(&req->wb_list);
|
list_del_init(&req->wb_list);
|
||||||
req->wb_list_head = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct nfs_page *
|
static inline struct nfs_page *
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue