On Thu, Nov 30, 2023 at 10:13:41AM -0800, Andrii Nakryiko wrote: > On Thu, Nov 30, 2023 at 10:03 AM Andrii Nakryiko > <andrii.nakryiko@xxxxxxxxx> wrote: > > > > On Thu, Nov 30, 2023 at 8:37 AM Simon Horman <horms@xxxxxxxxxx> wrote: > > > > > > On Mon, Nov 27, 2023 at 11:03:54AM -0800, Andrii Nakryiko wrote: > > > > > > ... > > > > > > > @@ -764,7 +817,10 @@ static int bpf_get_tree(struct fs_context *fc) > > > > > > > > static void bpf_free_fc(struct fs_context *fc) > > > > { > > > > - kfree(fc->fs_private); > > > > + struct bpf_mount_opts *opts = fc->s_fs_info; > > > > + > > > > + if (opts) > > > > + kfree(opts); > > > > } > > > > > > Hi Andrii, > > > > > > as it looks like there will be a v12, I have a minor nit to report: There > > > is no need to check if opts is non-NULL because kfree() is basically a > > > no-op if it's argument is NULL. > > > > > > So perhaps this can become (completely untested!): > > > > > > static void bpf_free_fc(struct fs_context *fc) > > > { > > > kfree(fc->s_fs_info); > > > } > > > > > > > sure, I can drop the check, I wasn't sure if it's canonical or not to > > check the argument for NULL before calling kfree(). For user-space > > it's definitely quite expected to not have to check for null before > > calling free(). > > Heh, turns out I already simplified this, but it's in the next patch. > I'll move it into patch #2, though, where it actually belongs. Thanks. I do believe that for kernel code not checking for NULL here is preferred.