fs: remove kiocb.ki_hint
authorChristoph Hellwig <hch@lst.de>
Tue, 8 Mar 2022 06:05:28 +0000 (07:05 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 9 Mar 2022 00:55:03 +0000 (17:55 -0700)
This field is entirely unused now except for a tracepoint in f2fs, so
remove it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://lore.kernel.org/r/20220308060529.736277-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/aio.c
fs/cachefiles/io.c
fs/f2fs/file.c
fs/io_uring.c
include/linux/fs.h
include/trace/events/f2fs.h

index 4ceba13a7db0f60510174c8b8d46f461ab3034ea..eb0948bb74f183e43ca1d1af66bd833ec754d5b2 100644 (file)
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1478,7 +1478,6 @@ static int aio_prep_rw(struct kiocb *req, const struct iocb *iocb)
        req->ki_flags = iocb_flags(req->ki_filp);
        if (iocb->aio_flags & IOCB_FLAG_RESFD)
                req->ki_flags |= IOCB_EVENTFD;
-       req->ki_hint = ki_hint_validate(file_write_hint(req->ki_filp));
        if (iocb->aio_flags & IOCB_FLAG_IOPRIO) {
                /*
                 * If the IOCB_FLAG_IOPRIO flag of aio_flags is set, then
index 753986ea1583b3139e22ef6edb94f57d9a0beec9..bc7c7a7d9260090c525271ae89348d3572135df9 100644 (file)
@@ -138,7 +138,6 @@ static int cachefiles_read(struct netfs_cache_resources *cres,
        ki->iocb.ki_filp        = file;
        ki->iocb.ki_pos         = start_pos + skipped;
        ki->iocb.ki_flags       = IOCB_DIRECT;
-       ki->iocb.ki_hint        = ki_hint_validate(file_write_hint(file));
        ki->iocb.ki_ioprio      = get_current_ioprio();
        ki->skipped             = skipped;
        ki->object              = object;
@@ -313,7 +312,6 @@ static int cachefiles_write(struct netfs_cache_resources *cres,
        ki->iocb.ki_filp        = file;
        ki->iocb.ki_pos         = start_pos;
        ki->iocb.ki_flags       = IOCB_DIRECT | IOCB_WRITE;
-       ki->iocb.ki_hint        = ki_hint_validate(file_write_hint(file));
        ki->iocb.ki_ioprio      = get_current_ioprio();
        ki->object              = object;
        ki->inval_counter       = cres->inval_counter;
index 3c98ef6af97d139db476e060afb35514d8e18d58..45076c01a2bab50ab84264043b9051ac2bd836d7 100644 (file)
@@ -4479,10 +4479,8 @@ static ssize_t f2fs_dio_write_iter(struct kiocb *iocb, struct iov_iter *from,
        struct f2fs_inode_info *fi = F2FS_I(inode);
        struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
        const bool do_opu = f2fs_lfs_mode(sbi);
-       const int whint_mode = F2FS_OPTION(sbi).whint_mode;
        const loff_t pos = iocb->ki_pos;
        const ssize_t count = iov_iter_count(from);
-       const enum rw_hint hint = iocb->ki_hint;
        unsigned int dio_flags;
        struct iomap_dio *dio;
        ssize_t ret;
@@ -4515,8 +4513,6 @@ static ssize_t f2fs_dio_write_iter(struct kiocb *iocb, struct iov_iter *from,
                if (do_opu)
                        down_read(&fi->i_gc_rwsem[READ]);
        }
-       if (whint_mode == WHINT_MODE_OFF)
-               iocb->ki_hint = WRITE_LIFE_NOT_SET;
 
        /*
         * We have to use __iomap_dio_rw() and iomap_dio_complete() instead of
@@ -4539,8 +4535,6 @@ static ssize_t f2fs_dio_write_iter(struct kiocb *iocb, struct iov_iter *from,
                ret = iomap_dio_complete(dio);
        }
 
-       if (whint_mode == WHINT_MODE_OFF)
-               iocb->ki_hint = hint;
        if (do_opu)
                up_read(&fi->i_gc_rwsem[READ]);
        up_read(&fi->i_gc_rwsem[WRITE]);
index 4715980e90150c5c629421dd36ee19f08d149f6b..36e09169ff936d652652dfcbfbdd18f229a90556 100644 (file)
@@ -3747,7 +3747,6 @@ static int io_write_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
 {
        if (unlikely(!(req->file->f_mode & FMODE_WRITE)))
                return -EBADF;
-       req->rw.kiocb.ki_hint = ki_hint_validate(file_write_hint(req->file));
        return io_prep_rw(req, sqe);
 }
 
index e2d892b201b07a5046497f8e6fe3ff04c775df89..d5658ac5d8c65193c6f213117ad043c3c73b5999 100644 (file)
@@ -327,7 +327,6 @@ struct kiocb {
        void (*ki_complete)(struct kiocb *iocb, long ret);
        void                    *private;
        int                     ki_flags;
-       u16                     ki_hint;
        u16                     ki_ioprio; /* See linux/ioprio.h */
        struct wait_page_queue  *ki_waitq; /* for async buffered IO */
        randomized_struct_fields_end
@@ -2225,21 +2224,11 @@ static inline enum rw_hint file_write_hint(struct file *file)
 
 static inline int iocb_flags(struct file *file);
 
-static inline u16 ki_hint_validate(enum rw_hint hint)
-{
-       typeof(((struct kiocb *)0)->ki_hint) max_hint = -1;
-
-       if (hint <= max_hint)
-               return hint;
-       return 0;
-}
-
 static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp)
 {
        *kiocb = (struct kiocb) {
                .ki_filp = filp,
                .ki_flags = iocb_flags(filp),
-               .ki_hint = ki_hint_validate(file_write_hint(filp)),
                .ki_ioprio = get_current_ioprio(),
        };
 }
@@ -2250,7 +2239,6 @@ static inline void kiocb_clone(struct kiocb *kiocb, struct kiocb *kiocb_src,
        *kiocb = (struct kiocb) {
                .ki_filp = filp,
                .ki_flags = kiocb_src->ki_flags,
-               .ki_hint = kiocb_src->ki_hint,
                .ki_ioprio = kiocb_src->ki_ioprio,
                .ki_pos = kiocb_src->ki_pos,
        };
index f701bb23f83c439e5d8c6171b55422769d2e172c..1779e133cea0c1b18a68ca61f8694fe618767dfb 100644 (file)
@@ -956,12 +956,11 @@ TRACE_EVENT(f2fs_direct_IO_enter,
                __entry->rw     = rw;
        ),
 
-       TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu ki_flags = %x ki_hint = %x ki_ioprio = %x rw = %d",
+       TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu ki_flags = %x ki_ioprio = %x rw = %d",
                show_dev_ino(__entry),
                __entry->iocb->ki_pos,
                __entry->len,
                __entry->iocb->ki_flags,
-               __entry->iocb->ki_hint,
                __entry->iocb->ki_ioprio,
                __entry->rw)
 );