v4: - switch to dedicated errseq_t cursor in struct file for syncfs - drop ioctl for fetching the errseq_t without syncing This is the fourth posting of this patchset. After thinking about it more, I think multiplexing file->f_wb_err based on O_PATH open is just too weird. I think it'd be better if syncfs() "just worked" as expected no matter what sort of fd you use, or how you multiplex it with fsync. Also (at least on x86_64) there is currently a 4 byte pad at the end of the struct so this doesn't end up growing the memory utilization anyway. Does anyone object to doing this? I've also dropped the ioctl patch. I have a draft patch to expose that via fsinfo, but that functionality is really separate from returning an error to syncfs. We can look at that after the syncfs piece is settled. Jeff Layton (2): vfs: track per-sb writeback errors and report them to syncfs buffer: record blockdev write errors in super_block that it backs drivers/dax/device.c | 1 + fs/buffer.c | 2 ++ fs/file_table.c | 1 + fs/open.c | 3 +-- fs/sync.c | 6 ++++-- include/linux/fs.h | 16 ++++++++++++++++ include/linux/pagemap.h | 5 ++++- 7 files changed, 29 insertions(+), 5 deletions(-) -- 2.24.1