diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_buf.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 9ef9ed2cfe2e..5e68099db2a5 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/migrate.h> | 33 | #include <linux/migrate.h> |
34 | #include <linux/backing-dev.h> | 34 | #include <linux/backing-dev.h> |
35 | #include <linux/freezer.h> | 35 | #include <linux/freezer.h> |
36 | #include <linux/list_sort.h> | ||
37 | 36 | ||
38 | #include "xfs_sb.h" | 37 | #include "xfs_sb.h" |
39 | #include "xfs_inum.h" | 38 | #include "xfs_inum.h" |
@@ -709,6 +708,27 @@ xfs_buf_get_empty( | |||
709 | return bp; | 708 | return bp; |
710 | } | 709 | } |
711 | 710 | ||
711 | /* | ||
712 | * Return a buffer allocated as an empty buffer and associated to external | ||
713 | * memory via xfs_buf_associate_memory() back to it's empty state. | ||
714 | */ | ||
715 | void | ||
716 | xfs_buf_set_empty( | ||
717 | struct xfs_buf *bp, | ||
718 | size_t len) | ||
719 | { | ||
720 | if (bp->b_pages) | ||
721 | _xfs_buf_free_pages(bp); | ||
722 | |||
723 | bp->b_pages = NULL; | ||
724 | bp->b_page_count = 0; | ||
725 | bp->b_addr = NULL; | ||
726 | bp->b_file_offset = 0; | ||
727 | bp->b_buffer_length = bp->b_count_desired = len; | ||
728 | bp->b_bn = XFS_BUF_DADDR_NULL; | ||
729 | bp->b_flags &= ~XBF_MAPPED; | ||
730 | } | ||
731 | |||
712 | static inline struct page * | 732 | static inline struct page * |
713 | mem_to_page( | 733 | mem_to_page( |
714 | void *addr) | 734 | void *addr) |
@@ -1402,12 +1422,12 @@ restart: | |||
1402 | int | 1422 | int |
1403 | xfs_buftarg_shrink( | 1423 | xfs_buftarg_shrink( |
1404 | struct shrinker *shrink, | 1424 | struct shrinker *shrink, |
1405 | int nr_to_scan, | 1425 | struct shrink_control *sc) |
1406 | gfp_t mask) | ||
1407 | { | 1426 | { |
1408 | struct xfs_buftarg *btp = container_of(shrink, | 1427 | struct xfs_buftarg *btp = container_of(shrink, |
1409 | struct xfs_buftarg, bt_shrinker); | 1428 | struct xfs_buftarg, bt_shrinker); |
1410 | struct xfs_buf *bp; | 1429 | struct xfs_buf *bp; |
1430 | int nr_to_scan = sc->nr_to_scan; | ||
1411 | LIST_HEAD(dispose); | 1431 | LIST_HEAD(dispose); |
1412 | 1432 | ||
1413 | if (!nr_to_scan) | 1433 | if (!nr_to_scan) |