Re: [Cluster-devel] [PATCH 10/11] vfs: trylock inode->i_rwsem in iterate_dir() to support nowait
On Sun, Aug 27, 2023 at 09:28:34PM +0800, Hao Xu wrote: > From: Hao Xu > > Trylock inode->i_rwsem in iterate_dir() to support nowait semantics and > error out -EAGAIN when there is contention. > > Signed-off-by: Hao Xu > --- Unreviewable until you rebased on -rc1 as far as I'm concerned because the code in here changed a lot.
Re: [Cluster-devel] [PATCH v6 00/11] io_uring getdents
On Sun, Aug 27, 2023 at 09:28:24PM +0800, Hao Xu wrote: For the future it would be helpful to hold of on sending larger series that like this until a stable tag is out. Right now this series is generating a bunch of merge conflicts because of all the changes to relevant codepaths that got merged. So either we have to resolve them to see whether things still make sense within the context of all the changed code or risk that stuff we comment is outdated.
Re: [Cluster-devel] [PATCH 07/11] vfs: add nowait parameter for file_accessed()
On Sun, Aug 27, 2023 at 09:28:31PM +0800, Hao Xu wrote: > From: Hao Xu > > Add a boolean parameter for file_accessed() to support nowait semantics. > Currently it is true only with io_uring as its initial caller. > > Signed-off-by: Hao Xu > --- > arch/s390/hypfs/inode.c | 2 +- > block/fops.c| 2 +- > fs/btrfs/file.c | 2 +- > fs/btrfs/inode.c| 2 +- > fs/coda/dir.c | 4 ++-- > fs/ext2/file.c | 4 ++-- > fs/ext4/file.c | 6 +++--- > fs/f2fs/file.c | 4 ++-- > fs/fuse/dax.c | 2 +- > fs/fuse/file.c | 4 ++-- > fs/gfs2/file.c | 2 +- > fs/hugetlbfs/inode.c| 2 +- > fs/nilfs2/file.c| 2 +- > fs/orangefs/file.c | 2 +- > fs/orangefs/inode.c | 2 +- > fs/pipe.c | 2 +- > fs/ramfs/file-nommu.c | 2 +- > fs/readdir.c| 2 +- > fs/smb/client/cifsfs.c | 2 +- > fs/splice.c | 2 +- > fs/ubifs/file.c | 2 +- > fs/udf/file.c | 2 +- > fs/xfs/xfs_file.c | 6 +++--- > fs/zonefs/file.c| 4 ++-- > include/linux/fs.h | 5 +++-- > mm/filemap.c| 8 > mm/shmem.c | 6 +++--- > 27 files changed, 43 insertions(+), 42 deletions(-) > > diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c > index ee919bfc8186..55f562027c4f 100644 > --- a/arch/s390/hypfs/inode.c > +++ b/arch/s390/hypfs/inode.c > @@ -157,7 +157,7 @@ static ssize_t hypfs_read_iter(struct kiocb *iocb, struct > iov_iter *to) > if (!count) > return -EFAULT; > iocb->ki_pos = pos + count; > - file_accessed(file); > + file_accessed(file, false); Why? If all you do is skip atime update anyway then just add something like: bool file_needs_atime(struct file *file) { return !(file->f_flags & O_NOATIME) && atime_needs_update(&file->f_path, d_inode(path->dentry)); } and then if (file_needs_atime(file) && IOURING_WANTS_ASYNC) return -EAGAIN; instead of touching all this code.
[Cluster-devel] [syzbot] Monthly gfs2 report (Sep 2023)
Hello gfs2 maintainers/developers, This is a 31-day syzbot report for the gfs2 subsystem. All related reports/information can be found at: https://syzkaller.appspot.com/upstream/s/gfs2 During the period, 0 new issues were detected and 0 were fixed. In total, 17 issues are still open and 20 have been fixed so far. Some of the still happening issues: Ref Crashes Repro Title <1> 2679Yes WARNING in __folio_mark_dirty (2) https://syzkaller.appspot.com/bug?extid=e14d6cd6ec241f507ba7 <2> 577 Yes kernel BUG in gfs2_glock_nq (2) https://syzkaller.appspot.com/bug?extid=70f4e455dee59ab40c80 <3> 77 Yes INFO: task hung in gfs2_gl_hash_clear (3) https://syzkaller.appspot.com/bug?extid=ed7d0f71a89e28557a77 <4> 54 Yes WARNING in gfs2_check_blk_type https://syzkaller.appspot.com/bug?extid=092b28923eb79e0f3c41 <5> 35 Yes general protection fault in gfs2_dump_glock (2) https://syzkaller.appspot.com/bug?extid=427fed3295e9a7e887f2 <6> 7 Yes BUG: unable to handle kernel NULL pointer dereference in gfs2_rgrp_dump https://syzkaller.appspot.com/bug?extid=da0fc229cc1ff4bb2e6d <7> 4 Yes BUG: unable to handle kernel NULL pointer dereference in gfs2_rindex_update https://syzkaller.appspot.com/bug?extid=2b32df23ff6b5b307565 <8> 1 Yes BUG: sleeping function called from invalid context in gfs2_make_fs_ro https://syzkaller.appspot.com/bug?extid=60369f4775c014dd1804 --- This report is generated by a bot. It may contain errors. See https://goo.gl/tpsmEJ for more information about syzbot. syzbot engineers can be reached at syzkal...@googlegroups.com. To disable reminders for individual bugs, reply with the following command: #syz set no-reminders To change bug's subsystems, reply with: #syz set subsystems: new-subsystem You may send multiple commands in a single email message.
[Cluster-devel] [syzbot] [gfs2?] INFO: task hung in write_cache_pages (3)
Hello, syzbot found the following issue on: HEAD commit:92901222f83d Merge tag 'f2fs-for-6-6-rc1' of git://git.ker.. git tree: upstream console+strace: https://syzkaller.appspot.com/x/log.txt?x=1688084868 kernel config: https://syzkaller.appspot.com/x/.config?x=3d78b3780d210e21 dashboard link: https://syzkaller.appspot.com/bug?extid=4fcffdd85e518af6f129 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17933a0068 C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12ef710468 Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/f58f2fdc5a9e/disk-92901222.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/16dba3905664/vmlinux-92901222.xz kernel image: https://storage.googleapis.com/syzbot-assets/3a5b1d5efdbd/bzImage-92901222.xz mounted in repro: https://storage.googleapis.com/syzbot-assets/821293a2c99e/mount_0.gz The issue was bisected to: commit 47b7ec1daa511cd82cb9c31e88bfdb664b031d2a Author: Andrew Price Date: Fri Feb 5 17:10:17 2021 + gfs2: Enable rgrplvb for sb_fs_format 1802 bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=16c9842ba8 final oops: https://syzkaller.appspot.com/x/report.txt?x=15c9842ba8 console output: https://syzkaller.appspot.com/x/log.txt?x=11c9842ba8 IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+4fcffdd85e518af6f...@syzkaller.appspotmail.com Fixes: 47b7ec1daa51 ("gfs2: Enable rgrplvb for sb_fs_format 1802") INFO: task kworker/u4:5:138 blocked for more than 143 seconds. Not tainted 6.5.0-syzkaller-11075-g92901222f83d #0 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/u4:5state:D stack:21344 pid:138 ppid:2 flags:0x4000 Workqueue: writeback wb_workfn (flush-7:0) Call Trace: context_switch kernel/sched/core.c:5382 [inline] __schedule+0x1873/0x48f0 kernel/sched/core.c:6695 schedule+0xc3/0x180 kernel/sched/core.c:6771 io_schedule+0x8c/0x100 kernel/sched/core.c:9026 folio_wait_bit_common+0x871/0x12a0 mm/filemap.c:1304 folio_lock include/linux/pagemap.h:1042 [inline] write_cache_pages+0x517/0x13f0 mm/page-writeback.c:2441 iomap_writepages+0x68/0x240 fs/iomap/buffered-io.c:1979 gfs2_writepages+0x169/0x1f0 fs/gfs2/aops.c:191 do_writepages+0x3a6/0x670 mm/page-writeback.c:2553 __writeback_single_inode+0x155/0xfa0 fs/fs-writeback.c:1603 writeback_sb_inodes+0x8e3/0x11d0 fs/fs-writeback.c:1894 __writeback_inodes_wb+0x11b/0x260 fs/fs-writeback.c:1965 wb_writeback+0x461/0xc60 fs/fs-writeback.c:2072 wb_check_background_flush fs/fs-writeback.c:2142 [inline] wb_do_writeback fs/fs-writeback.c:2230 [inline] wb_workfn+0xc6f/0xff0 fs/fs-writeback.c:2257 process_one_work+0x781/0x1130 kernel/workqueue.c:2630 process_scheduled_works kernel/workqueue.c:2703 [inline] worker_thread+0xabf/0x1060 kernel/workqueue.c:2784 kthread+0x2b8/0x350 kernel/kthread.c:388 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304 INFO: task syz-executor336:5029 blocked for more than 143 seconds. Not tainted 6.5.0-syzkaller-11075-g92901222f83d #0 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor336 state:D stack:23408 pid:5029 ppid:5028 flags:0x4006 Call Trace: context_switch kernel/sched/core.c:5382 [inline] __schedule+0x1873/0x48f0 kernel/sched/core.c:6695 schedule+0xc3/0x180 kernel/sched/core.c:6771 io_schedule+0x8c/0x100 kernel/sched/core.c:9026 folio_wait_bit_common+0x871/0x12a0 mm/filemap.c:1304 folio_lock include/linux/pagemap.h:1042 [inline] write_cache_pages+0x517/0x13f0 mm/page-writeback.c:2441 iomap_writepages+0x68/0x240 fs/iomap/buffered-io.c:1979 gfs2_writepages+0x169/0x1f0 fs/gfs2/aops.c:191 do_writepages+0x3a6/0x670 mm/page-writeback.c:2553 filemap_fdatawrite_wbc+0x125/0x180 mm/filemap.c:393 __filemap_fdatawrite_range mm/filemap.c:426 [inline] __filemap_fdatawrite mm/filemap.c:432 [inline] filemap_fdatawrite+0x143/0x1b0 mm/filemap.c:437 gfs2_ordered_write fs/gfs2/log.c:740 [inline] gfs2_log_flush+0xa42/0x25f0 fs/gfs2/log.c:1098 gfs2_trans_end+0x39f/0x560 fs/gfs2/trans.c:158 gfs2_page_mkwrite+0x1262/0x14f0 fs/gfs2/file.c:533 do_page_mkwrite+0x197/0x470 mm/memory.c:2931 do_shared_fault mm/memory.c:4647 [inline] do_fault mm/memory.c:4709 [inline] do_pte_missing mm/memory.c:3669 [inline] handle_pte_fault mm/memory.c:4978 [inline] __handle_mm_fault mm/memory.c:5119 [inline] handle_mm_fault+0x22b2/0x6200 mm/memory.c:5284 do_user_addr_fault arch/x86/mm/fault.c:1413 [inline] handle_page_fault arch/x86/mm/fault.c:1505 [inline] exc_page_fault+0x2ac/0x860 arch/x86/mm/fault.c:1561 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:570 RIP: 0033:0x7f088fba48e7 RSP: 002b:7fff09b9e550 EFLAGS: 00010286 RAX: 0030656c69662f2e RBX: 0
Re: [Cluster-devel] [f2fs-dev] [PATCH 01/17] fs: unexport buffer_check_dirty_writeback
Hello: This series was applied to jaegeuk/f2fs.git (dev) by Jens Axboe : On Mon, 24 Apr 2023 07:49:10 +0200 you wrote: > buffer_check_dirty_writeback is only used by the block device aops, > remove the export. > > Signed-off-by: Christoph Hellwig > --- > fs/buffer.c | 1 - > 1 file changed, 1 deletion(-) Here is the summary with links: - [f2fs-dev,01/17] fs: unexport buffer_check_dirty_writeback (no matching commit) - [f2fs-dev,02/17] fs: remove the special !CONFIG_BLOCK def_blk_fops (no matching commit) - [f2fs-dev,03/17] fs: rename and move block_page_mkwrite_return (no matching commit) - [f2fs-dev,04/17] fs: remove emergency_thaw_bdev https://git.kernel.org/jaegeuk/f2fs/c/4a8b719f95c0 - [f2fs-dev,05/17] filemap: update ki_pos in generic_perform_write (no matching commit) - [f2fs-dev,06/17] filemap: add a kiocb_write_and_wait helper (no matching commit) - [f2fs-dev,07/17] filemap: add a kiocb_invalidate_pages helper (no matching commit) - [f2fs-dev,08/17] filemap: add a kiocb_invalidate_post_write helper (no matching commit) - [f2fs-dev,09/17] fs: factor out a direct_write_fallback helper (no matching commit) - [f2fs-dev,10/17] iomap: use kiocb_write_and_wait and kiocb_invalidate_pages (no matching commit) - [f2fs-dev,11/17] iomap: assign current->backing_dev_info in iomap_file_buffered_write (no matching commit) - [f2fs-dev,12/17] fuse: use direct_write_fallback (no matching commit) - [f2fs-dev,13/17] block: don't plug in blkdev_write_iter (no matching commit) - [f2fs-dev,14/17] block: open code __generic_file_write_iter for blkdev writes (no matching commit) - [f2fs-dev,15/17] block: stop setting ->direct_IO (no matching commit) - [f2fs-dev,16/17] block: use iomap for writes to block devices (no matching commit) - [f2fs-dev,17/17] fs: add CONFIG_BUFFER_HEAD (no matching commit) You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
Re: [Cluster-devel] [f2fs-dev] [PATCH v2 00/89] fs: new accessors for inode->i_ctime
Hello: This series was applied to jaegeuk/f2fs.git (dev) by Christian Brauner : On Wed, 5 Jul 2023 14:58:09 -0400 you wrote: > v2: > - prepend patches to add missing ctime updates > - add simple_rename_timestamp helper function > - rename ctime accessor functions as inode_get_ctime/inode_set_ctime_* > - drop individual inode_ctime_set_{sec,nsec} helpers > > I've been working on a patchset to change how the inode->i_ctime is > accessed in order to give us conditional, high-res timestamps for the > ctime and mtime. struct timespec64 has unused bits in it that we can use > to implement this. In order to do that however, we need to wrap all > accesses of inode->i_ctime to ensure that bits used as flags are > appropriately handled. > > [...] Here is the summary with links: - [f2fs-dev,v2,07/92] fs: add ctime accessors infrastructure https://git.kernel.org/jaegeuk/f2fs/c/9b6304c1d537 - [f2fs-dev,v2,08/92] fs: new helper: simple_rename_timestamp https://git.kernel.org/jaegeuk/f2fs/c/0c4767923ed6 - [f2fs-dev,v2,92/92] fs: rename i_ctime field to __i_ctime https://git.kernel.org/jaegeuk/f2fs/c/13bc24457850 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
Re: [Cluster-devel] [f2fs-dev] [PATCH v7 00/13] fs: implement multigrain timestamps
Hello: This series was applied to jaegeuk/f2fs.git (dev) by Christian Brauner : On Mon, 07 Aug 2023 15:38:31 -0400 you wrote: > The VFS always uses coarse-grained timestamps when updating the > ctime and mtime after a change. This has the benefit of allowing > filesystems to optimize away a lot metadata updates, down to around 1 > per jiffy, even when a file is under heavy writes. > > Unfortunately, this coarseness has always been an issue when we're > exporting via NFSv3, which relies on timestamps to validate caches. A > lot of changes can happen in a jiffy, so timestamps aren't sufficient to > help the client decide to invalidate the cache. > > [...] Here is the summary with links: - [f2fs-dev,v7,01/13] fs: remove silly warning from current_time https://git.kernel.org/jaegeuk/f2fs/c/b3030e4f2344 - [f2fs-dev,v7,02/13] fs: pass the request_mask to generic_fillattr https://git.kernel.org/jaegeuk/f2fs/c/0d72b92883c6 - [f2fs-dev,v7,03/13] fs: drop the timespec64 arg from generic_update_time https://git.kernel.org/jaegeuk/f2fs/c/541d4c798a59 - [f2fs-dev,v7,04/13] btrfs: have it use inode_update_timestamps https://git.kernel.org/jaegeuk/f2fs/c/bb7cc0a62e47 - [f2fs-dev,v7,05/13] fat: make fat_update_time get its own timestamp (no matching commit) - [f2fs-dev,v7,06/13] ubifs: have ubifs_update_time use inode_update_timestamps (no matching commit) - [f2fs-dev,v7,07/13] xfs: have xfs_vn_update_time gets its own timestamp (no matching commit) - [f2fs-dev,v7,08/13] fs: drop the timespec64 argument from update_time (no matching commit) - [f2fs-dev,v7,09/13] fs: add infrastructure for multigrain timestamps https://git.kernel.org/jaegeuk/f2fs/c/ffb6cf19e063 - [f2fs-dev,v7,10/13] tmpfs: add support for multigrain timestamps https://git.kernel.org/jaegeuk/f2fs/c/d48c33972916 - [f2fs-dev,v7,11/13] xfs: switch to multigrain timestamps (no matching commit) - [f2fs-dev,v7,12/13] ext4: switch to multigrain timestamps https://git.kernel.org/jaegeuk/f2fs/c/0269b585868e - [f2fs-dev,v7,13/13] btrfs: convert to multigrain timestamps https://git.kernel.org/jaegeuk/f2fs/c/50e9ceef1d4f You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html