Message ID | 20240821024301.1058918-1-wozizhi@huawei.com (mailing list archive) |
---|---|
Headers | show |
Series | netfs/cachefiles: Some bugfixes | expand |
Hi! This patchset involves some general cachefiles workflows and the on- demand loading process. For example, the eighth patch fixes a memory ordering issue in cachefiles, and the fifth patch includes some cleanup. These all related to changes in the general cachefiles workflow, and I think these deserve some attention. Additionally, although the current EROFS on-demand loading mode based on cachefiles interaction might be considered for switching to the fanotify mode in the future, I believe the code based on the current cachefiles on-demand loading mode still requires maintenance. The first few patches here are bugfixes specifically for that. Therefore, I would greatly appreciate it if anyone could take some time to review these patches. So friendly ping. Thanks, Zizhi Wo 在 2024/8/21 10:42, Zizhi Wo 写道: > Hi! > > We recently discovered some bugs through self-discovery and testing in > erofs ondemand loading mode, and this patchset is mainly used to fix > them. These patches are relatively simple changes, and I would be excited > to discuss them together with everyone. Below is a brief introduction to > each patch: > > Patch 1: Fix for wrong block_number calculated in ondemand write. > > Patch 2: Fix for wrong length return value in ondemand write. > > Patch 3: Fix missing position update in ondemand write, for scenarios > involving read-ahead, invoking the write syscall. > > Patch 4: Previously, the last redundant data was cleared during the umount > phase. This patch remove unnecessary data in advance. > > Patch 5: Code clean up for cachefiles_commit_tmpfile(). > > Patch 6: Modify error return value in cachefiles_daemon_secctx(). > > Patch 7: Fix object->file Null-pointer-dereference problem. > > Patch 8: Fix for memory out of order in fscache_create_volume(). > > > Zizhi Wo (8): > cachefiles: Fix incorrect block calculations in > __cachefiles_prepare_write() > cachefiles: Fix incorrect length return value in > cachefiles_ondemand_fd_write_iter() > cachefiles: Fix missing pos updates in > cachefiles_ondemand_fd_write_iter() > cachefiles: Clear invalid cache data in advance > cachefiles: Clean up in cachefiles_commit_tmpfile() > cachefiles: Modify inappropriate error return value in > cachefiles_daemon_secctx() > cachefiles: Fix NULL pointer dereference in object->file > netfs/fscache: Add a memory barrier for FSCACHE_VOLUME_CREATING > > fs/cachefiles/daemon.c | 2 +- > fs/cachefiles/interface.c | 3 +++ > fs/cachefiles/io.c | 10 +++++----- > fs/cachefiles/namei.c | 23 +++++++++++++---------- > fs/cachefiles/ondemand.c | 38 +++++++++++++++++++++++++++++--------- > fs/netfs/fscache_volume.c | 3 +-- > 6 files changed, 52 insertions(+), 27 deletions(-) >
Hi Zizhi, On 2024/10/10 11:08, Zizhi Wo wrote: > Hi! > > This patchset involves some general cachefiles workflows and the on- > demand loading process. For example, the eighth patch fixes a memory > ordering issue in cachefiles, and the fifth patch includes some cleanup. > These all related to changes in the general cachefiles workflow, and I > think these deserve some attention. > > Additionally, although the current EROFS on-demand loading mode based on > cachefiles interaction might be considered for switching to the fanotify > mode in the future, I believe the code based on the current cachefiles > on-demand loading mode still requires maintenance. The first few patches > here are bugfixes specifically for that. Yes, I also agree with you. I pinged David weeks ago, because many bugfixes are not only impacted to cachefiles on-demand feature but also generic cachefiles, hopefully they could be addressed upstream. Thanks, Gao Xiang > > Therefore, I would greatly appreciate it if anyone could take some time > to review these patches. So friendly ping. > > Thanks, > Zizhi Wo > > > 在 2024/8/21 10:42, Zizhi Wo 写道: >> Hi! >> >> We recently discovered some bugs through self-discovery and testing in >> erofs ondemand loading mode, and this patchset is mainly used to fix >> them. These patches are relatively simple changes, and I would be excited >> to discuss them together with everyone. Below is a brief introduction to >> each patch: >> >> Patch 1: Fix for wrong block_number calculated in ondemand write. >> >> Patch 2: Fix for wrong length return value in ondemand write. >> >> Patch 3: Fix missing position update in ondemand write, for scenarios >> involving read-ahead, invoking the write syscall. >> >> Patch 4: Previously, the last redundant data was cleared during the umount >> phase. This patch remove unnecessary data in advance. >> >> Patch 5: Code clean up for cachefiles_commit_tmpfile(). >> >> Patch 6: Modify error return value in cachefiles_daemon_secctx(). >> >> Patch 7: Fix object->file Null-pointer-dereference problem. >> >> Patch 8: Fix for memory out of order in fscache_create_volume(). >> >> >> Zizhi Wo (8): >> cachefiles: Fix incorrect block calculations in >> __cachefiles_prepare_write() >> cachefiles: Fix incorrect length return value in >> cachefiles_ondemand_fd_write_iter() >> cachefiles: Fix missing pos updates in >> cachefiles_ondemand_fd_write_iter() >> cachefiles: Clear invalid cache data in advance >> cachefiles: Clean up in cachefiles_commit_tmpfile() >> cachefiles: Modify inappropriate error return value in >> cachefiles_daemon_secctx() >> cachefiles: Fix NULL pointer dereference in object->file >> netfs/fscache: Add a memory barrier for FSCACHE_VOLUME_CREATING >> >> fs/cachefiles/daemon.c | 2 +- >> fs/cachefiles/interface.c | 3 +++ >> fs/cachefiles/io.c | 10 +++++----- >> fs/cachefiles/namei.c | 23 +++++++++++++---------- >> fs/cachefiles/ondemand.c | 38 +++++++++++++++++++++++++++++--------- >> fs/netfs/fscache_volume.c | 3 +-- >> 6 files changed, 52 insertions(+), 27 deletions(-) >>
在 2024/10/10 11:31, Gao Xiang 写道: > Hi Zizhi, > > On 2024/10/10 11:08, Zizhi Wo wrote: >> Hi! >> >> This patchset involves some general cachefiles workflows and the on- >> demand loading process. For example, the eighth patch fixes a memory >> ordering issue in cachefiles, and the fifth patch includes some cleanup. >> These all related to changes in the general cachefiles workflow, and I >> think these deserve some attention. >> >> Additionally, although the current EROFS on-demand loading mode based on >> cachefiles interaction might be considered for switching to the fanotify >> mode in the future, I believe the code based on the current cachefiles >> on-demand loading mode still requires maintenance. The first few patches >> here are bugfixes specifically for that. > > Yes, I also agree with you. I pinged David weeks ago, because many > bugfixes are not only impacted to cachefiles on-demand feature but > also generic cachefiles, hopefully they could be addressed upstream. > Thank you very much for your support and reply! Thanks, Zizhi Wo > Thanks, > Gao Xiang > >> >> Therefore, I would greatly appreciate it if anyone could take some time >> to review these patches. So friendly ping. >> >> Thanks, >> Zizhi Wo >> >> >> 在 2024/8/21 10:42, Zizhi Wo 写道: >>> Hi! >>> >>> We recently discovered some bugs through self-discovery and testing in >>> erofs ondemand loading mode, and this patchset is mainly used to fix >>> them. These patches are relatively simple changes, and I would be >>> excited >>> to discuss them together with everyone. Below is a brief introduction to >>> each patch: >>> >>> Patch 1: Fix for wrong block_number calculated in ondemand write. >>> >>> Patch 2: Fix for wrong length return value in ondemand write. >>> >>> Patch 3: Fix missing position update in ondemand write, for scenarios >>> involving read-ahead, invoking the write syscall. >>> >>> Patch 4: Previously, the last redundant data was cleared during the >>> umount >>> phase. This patch remove unnecessary data in advance. >>> >>> Patch 5: Code clean up for cachefiles_commit_tmpfile(). >>> >>> Patch 6: Modify error return value in cachefiles_daemon_secctx(). >>> >>> Patch 7: Fix object->file Null-pointer-dereference problem. >>> >>> Patch 8: Fix for memory out of order in fscache_create_volume(). >>> >>> >>> Zizhi Wo (8): >>> cachefiles: Fix incorrect block calculations in >>> __cachefiles_prepare_write() >>> cachefiles: Fix incorrect length return value in >>> cachefiles_ondemand_fd_write_iter() >>> cachefiles: Fix missing pos updates in >>> cachefiles_ondemand_fd_write_iter() >>> cachefiles: Clear invalid cache data in advance >>> cachefiles: Clean up in cachefiles_commit_tmpfile() >>> cachefiles: Modify inappropriate error return value in >>> cachefiles_daemon_secctx() >>> cachefiles: Fix NULL pointer dereference in object->file >>> netfs/fscache: Add a memory barrier for FSCACHE_VOLUME_CREATING >>> >>> fs/cachefiles/daemon.c | 2 +- >>> fs/cachefiles/interface.c | 3 +++ >>> fs/cachefiles/io.c | 10 +++++----- >>> fs/cachefiles/namei.c | 23 +++++++++++++---------- >>> fs/cachefiles/ondemand.c | 38 +++++++++++++++++++++++++++++--------- >>> fs/netfs/fscache_volume.c | 3 +-- >>> 6 files changed, 52 insertions(+), 27 deletions(-) >>> >