OSDN Git Service

fs: remove bdev_try_to_free_page callback
authorZhang Yi <yi.zhang@huawei.com>
Thu, 10 Jun 2021 11:24:40 +0000 (19:24 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 24 Jun 2021 14:55:42 +0000 (10:55 -0400)
After remove the unique user of sop->bdev_try_to_free_page() callback,
we could remove the callback and the corresponding blkdev_releasepage()
at all.

Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20210610112440.3438139-9-yi.zhang@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/block_dev.c
include/linux/fs.h

index 6cc4d4c..e215da6 100644 (file)
@@ -1733,20 +1733,6 @@ ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to)
 }
 EXPORT_SYMBOL_GPL(blkdev_read_iter);
 
-/*
- * Try to release a page associated with block device when the system
- * is under memory pressure.
- */
-static int blkdev_releasepage(struct page *page, gfp_t wait)
-{
-       struct super_block *super = BDEV_I(page->mapping->host)->bdev.bd_super;
-
-       if (super && super->s_op->bdev_try_to_free_page)
-               return super->s_op->bdev_try_to_free_page(super, page, wait);
-
-       return try_to_free_buffers(page);
-}
-
 static int blkdev_writepages(struct address_space *mapping,
                             struct writeback_control *wbc)
 {
@@ -1760,7 +1746,6 @@ static const struct address_space_operations def_blk_aops = {
        .write_begin    = blkdev_write_begin,
        .write_end      = blkdev_write_end,
        .writepages     = blkdev_writepages,
-       .releasepage    = blkdev_releasepage,
        .direct_IO      = blkdev_direct_IO,
        .migratepage    = buffer_migrate_page_norefs,
        .is_dirty_writeback = buffer_check_dirty_writeback,
index c3c88fd..c3277b4 100644 (file)
@@ -2171,7 +2171,6 @@ struct super_operations {
        ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
        struct dquot **(*get_dquots)(struct inode *);
 #endif
-       int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
        long (*nr_cached_objects)(struct super_block *,
                                  struct shrink_control *);
        long (*free_cached_objects)(struct super_block *,