Re: [Cluster-devel] [PATCH 10/11] vfs: trylock inode->i_rwsem in iterate_dir() to support nowait

2023-09-04 Thread Christian Brauner
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

2023-09-04 Thread Christian Brauner
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()

2023-09-04 Thread Christian Brauner
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)

2023-09-04 Thread syzbot
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)

2023-09-04 Thread syzbot
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

2023-09-04 Thread patchwork-bot+f2fs
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

2023-09-04 Thread patchwork-bot+f2fs
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

2023-09-04 Thread patchwork-bot+f2fs
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