On Sat, Oct 30, 2021 at 1:24 AM Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxx> wrote: > > Amir Goldstein <amir73il@xxxxxxxxx> writes: > > >> Also, thank you both for the extensive review and ideas during the > >> development of this series. It was really appreciated! > >> > > > > Thank you for your appreciated effort! > > It was a wild journey through some interesting experiments, but > > you survived it well ;-) > > > > Would you be interested in pursuing FAN_WB_ERROR after a due rest > > and after all the dust on FAN_FS_ERROR has settled? > > I think it would make sense for me to continue working on it, yes. But, > before that, I think I still have some support to add to FAN_FS_ERROR, > like a detailed, fs-specific, info record, and an error location info > record, which has a use-case in Google Cloud environments. I have to > discuss priorities internally, but we (collabora) do have an interest in > supporting WB_ERROR too. > > For the detailed error report, fanotify could have a new info record > that carries a structure sent out by the file system. fanotify could > handle the lifetime of this object, by keeping a larger mempool, or > delegate its allocation/destruction to the filesystem. > Before you try anything radical, please check the size of prospect fs-specific data. My hunch says that in most cases fs-specific data could fit cozy along side the file handle within MAX_HANDLE_SZ and if this is true, then we do not need to worry about extreme cases right now. If there comes a time when we have a justified case of a filesystem that needs to report much bigger fs-specific data, we can consider it then. Until that time, we simply drop the over sized fs-specific data same as we do if filesystem passed in a file handle larger than MAX_HANDLE_SZ. > Like I proposed in an earlier version of FAN_FS_ERROR, the format could > be as simple as: > > struct fanotify_error_data_info { > struct fanotify_event_info_header hdr; > char data[]; > } > We can add char data[] field to the end of struct fanotify_event_info_error. It does not change the layout nor size of the structure and the info record is variable size per definition anyway. I know Jan didn't like this so much at the time and contemplated a separate info record for filename, but eventually, fanotify_event_info_fid also has an optional name following the unsigned char handle[]. > I think xfs, at least, would be able to make good use of this record with > xfs_scrub, as the xfs maintainers mentioned. I am not sure if that was the final conclusion. xfs_scrub is proactive and should have no problem reporting its own findings, but I have no objections to fs-specific details in FS_ERROR event. Thanks, Amir.