mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
backing_dev: remove current->backing_dev_info
Patch series "cleanup the filemap / direct I/O interaction", v4.
This series cleans up some of the generic write helper calling conventions
and the page cache writeback / invalidation for direct I/O. This is a
spinoff from the no-bufferhead kernel project, for which we'll want to an
use iomap based buffered write path in the block layer.
This patch (of 12):
The last user of current->backing_dev_info disappeared in commit
b9b1335e64
("remove bdi_congested() and wb_congested() and related
functions"). Remove the field and all assignments to it.
Link: https://lkml.kernel.org/r/20230601145904.1385409-1-hch@lst.de
Link: https://lkml.kernel.org/r/20230601145904.1385409-2-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Acked-by: Theodore Ts'o <tytso@mit.edu>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andreas Gruenbacher <agruenba@redhat.com>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Chao Yu <chao@kernel.org>
Cc: Ilya Dryomov <idryomov@gmail.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Miklos Szeredi <mszeredi@redhat.com>
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
e0228d590b
commit
0d625446d0
12 changed files with 2 additions and 38 deletions
|
@ -1145,7 +1145,6 @@ static int btrfs_write_check(struct kiocb *iocb, struct iov_iter *from,
|
|||
!(BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW | BTRFS_INODE_PREALLOC)))
|
||||
return -EAGAIN;
|
||||
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
ret = file_remove_privs(file);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@ -1165,10 +1164,8 @@ static int btrfs_write_check(struct kiocb *iocb, struct iov_iter *from,
|
|||
loff_t end_pos = round_up(pos + count, fs_info->sectorsize);
|
||||
|
||||
ret = btrfs_cont_expand(BTRFS_I(inode), oldsize, end_pos);
|
||||
if (ret) {
|
||||
current->backing_dev_info = NULL;
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -1689,7 +1686,6 @@ ssize_t btrfs_do_write_iter(struct kiocb *iocb, struct iov_iter *from,
|
|||
if (sync)
|
||||
atomic_dec(&inode->sync_writers);
|
||||
|
||||
current->backing_dev_info = NULL;
|
||||
return num_written;
|
||||
}
|
||||
|
||||
|
|
|
@ -1791,9 +1791,6 @@ retry_snap:
|
|||
else
|
||||
ceph_start_io_write(inode);
|
||||
|
||||
/* We can write back this queue in page reclaim */
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
|
||||
if (iocb->ki_flags & IOCB_APPEND) {
|
||||
err = ceph_do_getattr(inode, CEPH_STAT_CAP_SIZE, false);
|
||||
if (err < 0)
|
||||
|
@ -1940,7 +1937,6 @@ out:
|
|||
ceph_end_io_write(inode);
|
||||
out_unlocked:
|
||||
ceph_free_cap_flush(prealloc_cf);
|
||||
current->backing_dev_info = NULL;
|
||||
return written ? written : err;
|
||||
}
|
||||
|
||||
|
|
|
@ -285,9 +285,7 @@ static ssize_t ext4_buffered_write_iter(struct kiocb *iocb,
|
|||
if (ret <= 0)
|
||||
goto out;
|
||||
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
ret = generic_perform_write(iocb, from);
|
||||
current->backing_dev_info = NULL;
|
||||
|
||||
out:
|
||||
inode_unlock(inode);
|
||||
|
|
|
@ -4517,9 +4517,7 @@ static ssize_t f2fs_buffered_write_iter(struct kiocb *iocb,
|
|||
if (iocb->ki_flags & IOCB_NOWAIT)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
ret = generic_perform_write(iocb, from);
|
||||
current->backing_dev_info = NULL;
|
||||
|
||||
if (ret > 0) {
|
||||
iocb->ki_pos += ret;
|
||||
|
|
|
@ -1362,9 +1362,6 @@ static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
|||
writethrough:
|
||||
inode_lock(inode);
|
||||
|
||||
/* We can write back this queue in page reclaim */
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
|
||||
err = generic_write_checks(iocb, from);
|
||||
if (err <= 0)
|
||||
goto out;
|
||||
|
@ -1409,7 +1406,6 @@ writethrough:
|
|||
iocb->ki_pos += written;
|
||||
}
|
||||
out:
|
||||
current->backing_dev_info = NULL;
|
||||
inode_unlock(inode);
|
||||
if (written > 0)
|
||||
written = generic_write_sync(iocb, written);
|
||||
|
|
|
@ -1041,11 +1041,9 @@ retry:
|
|||
goto out_unlock;
|
||||
}
|
||||
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
pagefault_disable();
|
||||
ret = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops);
|
||||
pagefault_enable();
|
||||
current->backing_dev_info = NULL;
|
||||
if (ret > 0) {
|
||||
iocb->ki_pos += ret;
|
||||
written += ret;
|
||||
|
|
|
@ -648,11 +648,8 @@ ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from)
|
|||
since = filemap_sample_wb_err(file->f_mapping);
|
||||
nfs_start_io_write(inode);
|
||||
result = generic_write_checks(iocb, from);
|
||||
if (result > 0) {
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
if (result > 0)
|
||||
result = generic_perform_write(iocb, from);
|
||||
current->backing_dev_info = NULL;
|
||||
}
|
||||
nfs_end_io_write(inode);
|
||||
if (result <= 0)
|
||||
goto out;
|
||||
|
|
|
@ -1911,11 +1911,9 @@ static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
|||
|
||||
inode_lock(vi);
|
||||
/* We can write back this queue in page reclaim. */
|
||||
current->backing_dev_info = inode_to_bdi(vi);
|
||||
err = ntfs_prepare_file_for_write(iocb, from);
|
||||
if (iov_iter_count(from) && !err)
|
||||
written = ntfs_perform_write(file, from, iocb->ki_pos);
|
||||
current->backing_dev_info = NULL;
|
||||
inode_unlock(vi);
|
||||
iocb->ki_pos += written;
|
||||
if (likely(written > 0))
|
||||
|
|
|
@ -820,7 +820,6 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)
|
|||
if (!pages)
|
||||
return -ENOMEM;
|
||||
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
err = file_remove_privs(file);
|
||||
if (err)
|
||||
goto out;
|
||||
|
@ -993,8 +992,6 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)
|
|||
out:
|
||||
kfree(pages);
|
||||
|
||||
current->backing_dev_info = NULL;
|
||||
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
|
|
@ -717,9 +717,6 @@ write_retry:
|
|||
if (ret)
|
||||
goto out;
|
||||
|
||||
/* We can write back this queue in page reclaim */
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
|
||||
trace_xfs_file_buffered_write(iocb, from);
|
||||
ret = iomap_file_buffered_write(iocb, from,
|
||||
&xfs_buffered_write_iomap_ops);
|
||||
|
@ -753,7 +750,6 @@ write_retry:
|
|||
goto write_retry;
|
||||
}
|
||||
|
||||
current->backing_dev_info = NULL;
|
||||
out:
|
||||
if (iolock)
|
||||
xfs_iunlock(ip, iolock);
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
|
||||
/* task_struct member predeclarations (sorted alphabetically): */
|
||||
struct audit_context;
|
||||
struct backing_dev_info;
|
||||
struct bio_list;
|
||||
struct blk_plug;
|
||||
struct bpf_local_storage;
|
||||
|
@ -1186,8 +1185,6 @@ struct task_struct {
|
|||
/* VM state: */
|
||||
struct reclaim_state *reclaim_state;
|
||||
|
||||
struct backing_dev_info *backing_dev_info;
|
||||
|
||||
struct io_context *io_context;
|
||||
|
||||
#ifdef CONFIG_COMPACTION
|
||||
|
|
|
@ -3964,8 +3964,6 @@ ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
|||
ssize_t err;
|
||||
ssize_t status;
|
||||
|
||||
/* We can write back this queue in page reclaim */
|
||||
current->backing_dev_info = inode_to_bdi(inode);
|
||||
err = file_remove_privs(file);
|
||||
if (err)
|
||||
goto out;
|
||||
|
@ -4026,7 +4024,6 @@ ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
|||
iocb->ki_pos += written;
|
||||
}
|
||||
out:
|
||||
current->backing_dev_info = NULL;
|
||||
return written ? written : err;
|
||||
}
|
||||
EXPORT_SYMBOL(__generic_file_write_iter);
|
||||
|
|
Loading…
Add table
Reference in a new issue