On Thu 25-07-24 14:19:40, Josef Bacik wrote: > From: Amir Goldstein <amir73il@xxxxxxxxx> > > FS_PRE_ACCESS or FS_PRE_MODIFY will be generated on open depending on > file open mode. The pre-content event will be generated in addition to > FS_OPEN_PERM, but without sb_writers held and after file was truncated > in case file was opened with O_CREAT and/or O_TRUNC. > > The event will have a range info of (0..0) to provide an opportunity > to fill entire file content on open. > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> ... > @@ -176,10 +180,14 @@ static inline int fsnotify_file_area_perm(struct file *file, int perm_mask, > > /* > * fsnotify_file_perm - permission hook before file access > + * > + * Called from read()/write() with perm_mas MAY_READ/MAY_WRITE. ^^^ perm_mask > + * Called from open() with MAY_OPEN in addition to fsnotify_open_perm(), > + * but without sb_writers held and after the file was truncated. This sentence is a bit confusing to me (although I think I understand what you want to say). How about just: * Called from open() with MAY_OPEN without sb_writers held and after the * file was truncated. Note that this is a different event from * fsnotify_open_perm(). > */ > static inline int fsnotify_file_perm(struct file *file, int perm_mask) > { > - return fsnotify_file_area_perm(file, perm_mask, NULL, 0); > + return fsnotify_file_area_perm(file, perm_mask, &file->f_pos, 0); > } Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR