On Sat, Apr 26, 2025 at 10:10:55AM +0800, Lizhi Xu wrote: > +static int loop_check_backing_file(struct file *file, blk_mode_t mode, bool change) > +{ > + if (!file->f_op->read_iter) > + return -EINVAL; > + > + if (((file->f_mode & FMODE_WRITE) || > + (!change && (mode & BLK_OPEN_WRITE))) && > + (!file->f_op->write_iter)) > + return -EINVAL; This looks a bit odd. Both callers have the open struct file, so we should be able to check f_mode for both cases and not need the change flag as far as I can tell. Or did I miss something/ If for some reason we could not pass the fmode, the helper is probably not all that useful.