On Thu 02-06-22 14:00:38, Stefan Roesch wrote: > > > On 6/2/22 2:06 AM, Jan Kara wrote: > > On Wed 01-06-22 14:01:36, Stefan Roesch wrote: > >> This adds a file_modified_async() function to return -EAGAIN if the > >> request either requires to remove privileges or needs to update the file > >> modification time. This is required for async buffered writes, so the > >> request gets handled in the io worker of io-uring. > >> > >> Signed-off-by: Stefan Roesch <shr@xxxxxx> > >> Reviewed-by: Christoph Hellwig <hch@xxxxxx> > > > > I've found one small bug here: > > > >> diff --git a/fs/inode.c b/fs/inode.c > >> index c44573a32c6a..4503bed063e7 100644 > >> --- a/fs/inode.c > >> +++ b/fs/inode.c > > ... > >> -int file_modified(struct file *file) > >> +static int file_modified_flags(struct file *file, int flags) > >> { > >> int ret; > >> struct inode *inode = file_inode(file); > > > > We need to use 'flags' for __file_remove_privs_flags() call in this patch. > > > > I assume that you meant that the function should not be called _file_remove_privs(), > but instead file_remove_privs_flags(). Is that correct? No, I meant that patch 8 adds call __file_remove_privs(..., 0) to file_modified() and this patch then forgets to update that call to __file_remove_privs(..., flags) so that information propagates properly. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR