diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-20 13:44:37 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-20 13:44:37 -0500 |
commit | 5db3a7b2cabe8f0957683f798c4f8fa8605f9ebb (patch) | |
tree | 969aa2e7561796b3b8796a2f6645693f7ebe8d20 /fs | |
parent | a8881f5a5c723f82da84b786d3ca83a0df9e0c33 (diff) |
NFS: Debugging code for nfs_direct_(read|write)_schedule()
Make sure that we're doing our list accounting correctly.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/direct.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index e6585b9ff45a..1e3725e51df1 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
@@ -339,6 +339,7 @@ static void nfs_direct_read_schedule(struct nfs_direct_req *dreq) | |||
339 | if (count < rsize) | 339 | if (count < rsize) |
340 | bytes = count; | 340 | bytes = count; |
341 | 341 | ||
342 | BUG_ON(list_empty(list)); | ||
342 | data = list_entry(list->next, struct nfs_read_data, pages); | 343 | data = list_entry(list->next, struct nfs_read_data, pages); |
343 | list_del_init(&data->pages); | 344 | list_del_init(&data->pages); |
344 | 345 | ||
@@ -378,6 +379,7 @@ static void nfs_direct_read_schedule(struct nfs_direct_req *dreq) | |||
378 | 379 | ||
379 | count -= bytes; | 380 | count -= bytes; |
380 | } while (count != 0); | 381 | } while (count != 0); |
382 | BUG_ON(!list_empty(list)); | ||
381 | } | 383 | } |
382 | 384 | ||
383 | static ssize_t nfs_direct_read(struct kiocb *iocb, unsigned long user_addr, size_t count, loff_t pos, struct page **pages, unsigned int nr_pages) | 385 | static ssize_t nfs_direct_read(struct kiocb *iocb, unsigned long user_addr, size_t count, loff_t pos, struct page **pages, unsigned int nr_pages) |
@@ -657,6 +659,7 @@ static void nfs_direct_write_schedule(struct nfs_direct_req *dreq, int sync) | |||
657 | if (count < wsize) | 659 | if (count < wsize) |
658 | bytes = count; | 660 | bytes = count; |
659 | 661 | ||
662 | BUG_ON(list_empty(list)); | ||
660 | data = list_entry(list->next, struct nfs_write_data, pages); | 663 | data = list_entry(list->next, struct nfs_write_data, pages); |
661 | list_move_tail(&data->pages, &dreq->rewrite_list); | 664 | list_move_tail(&data->pages, &dreq->rewrite_list); |
662 | 665 | ||
@@ -697,6 +700,7 @@ static void nfs_direct_write_schedule(struct nfs_direct_req *dreq, int sync) | |||
697 | 700 | ||
698 | count -= bytes; | 701 | count -= bytes; |
699 | } while (count != 0); | 702 | } while (count != 0); |
703 | BUG_ON(!list_empty(list)); | ||
700 | } | 704 | } |
701 | 705 | ||
702 | static ssize_t nfs_direct_write(struct kiocb *iocb, unsigned long user_addr, size_t count, loff_t pos, struct page **pages, int nr_pages) | 706 | static ssize_t nfs_direct_write(struct kiocb *iocb, unsigned long user_addr, size_t count, loff_t pos, struct page **pages, int nr_pages) |