Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp2898pxf; Wed, 24 Mar 2021 18:57:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtuYRgfmZZdfiOiU8x3WOImILZiufULDRDi6ctiCDgz6N56iq3zUeQsHK2kARiMf/bhEU2 X-Received: by 2002:a17:906:4107:: with SMTP id j7mr6940234ejk.185.1616637427128; Wed, 24 Mar 2021 18:57:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616637427; cv=none; d=google.com; s=arc-20160816; b=w0gcKu23qe5tPToYILdnEx6Rr8pgwEo2FxDA85SHVSAabv6RwyrthTTpDJD3if885V Fq0RJF1BAh5c99/4/GY/H6XsXT+FF/F2yaiGJaUJmOw1TH1DkpZE29gMQMfYMH6zSlXy +dZ6VVdVsJUYr9xBNDOrbl1Xm9jpLs1kLeN3OIKv10qtEa4sPQIYorna8j2eW8g0i5YD tGQayilfB5HqmgbmPALljGiTTrsg9nIZfbY4qxycAw/jVUGl+HN2LxuZStZSVXrY6wQg UXh+FJDl6A8QymVUAwwsRHYIX77sW8QfpNZNmwwBahUFH2vO0NW3Kkv6Y9A2DQqlnaOn t9nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=fhT7lfu6P/3gT6Gg14tRPHhEqpMNGcVm3EE4u5owq+s=; b=E195W+XAlEsvg1bk5PxMI/5/Y8a78DimXAn/2HMJRpNdbgcNdUD0YM+La+mDYCWL6n 6sw45FOYg+ZYu3oLB3+PJyifsFR53iT7h0shXQKe39hCxEKoHmCOWniUsL9VVUfQBxv8 mJAsKAOmHxkevQYTTPW+zn6zWYu7F1fRdkgj1LHv9LQf1ioSPt04tD/RJ4uaOeQJkSeJ 7NLrvrIrO3PP4b1rK69C35G1qdRa940WLOb7lNSy6LhLuR8ewprMHZqT/avd52vD9cc+ /zuDkb+iEMqeGYw7CjuYwV7jb9AfFchoh9lNN9mKEOFFb8+iFUj2/obf4P2PF0ptn0/d ynIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=peHbnBR3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q28si3054634edc.389.2021.03.24.18.56.44; Wed, 24 Mar 2021 18:57:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=peHbnBR3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234417AbhCXIp2 (ORCPT + 99 others); Wed, 24 Mar 2021 04:45:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234459AbhCXIpQ (ORCPT ); Wed, 24 Mar 2021 04:45:16 -0400 Received: from mail-vk1-xa2e.google.com (mail-vk1-xa2e.google.com [IPv6:2607:f8b0:4864:20::a2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DF63C0613DE for ; Wed, 24 Mar 2021 01:45:14 -0700 (PDT) Received: by mail-vk1-xa2e.google.com with SMTP id s136so5275705vks.4 for ; Wed, 24 Mar 2021 01:45:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=fhT7lfu6P/3gT6Gg14tRPHhEqpMNGcVm3EE4u5owq+s=; b=peHbnBR3pIePzrAZMjcifsEkQBojGOrwDnuQWDhUWpzj4w85Z7ehJuErLNCWzjLYQH b5ohTRkn6WdZdl4P61CnWhHcE2bgUka8SuMwEhR9hBISYOu100MQGgF8e9+Io1/l4IHD PsYJDjwxYA5b+eP/Z7mWPJ78Ld4UfsNSpqep4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fhT7lfu6P/3gT6Gg14tRPHhEqpMNGcVm3EE4u5owq+s=; b=UpBfTXdEcmZ2fXY9q2ueJZZ9OEi+7vlxMAVg20e4WwexGWYkCP9S1q04qcity5hZjz X7RDCXxA9AfoiUDEwSoOkrYFcKPuJXxopv0Xduj83bgWX9BD3oqrcbRPpAlgfy9rSV3f Hz6mTXxDS7avAwhw5uNXpGOZuWo9r+exCqrX3sFn43hd+qFcTm2I1EsVzphbat40BOkZ ni+mXy4eBfYJCfhCs68x9AGJrhUQ85+fpOPyAx4YVkV2qBm2kDTnS6iHfwY9Og8V3ju1 XA4zWUvatPhODjQeUu5q/44HvAOF/v5TvZMtasviYHCoX9inmwTjlg+MqT3sdE0yoTh/ oMnQ== X-Gm-Message-State: AOAM533lokA4yQ5g/DpJUsLH40imQJ6pfgNmSVJc9lmV0Z9RVS+87gLD kXVlxrdLUJ17jXFF1x3Oo5BzkBP2wYH1LUyKmy9pPA== X-Received: by 2002:a1f:a047:: with SMTP id j68mr825333vke.14.1616575513624; Wed, 24 Mar 2021 01:45:13 -0700 (PDT) MIME-Version: 1.0 References: <20210322144916.137245-1-mszeredi@redhat.com> <20210322144916.137245-2-mszeredi@redhat.com> In-Reply-To: From: Miklos Szeredi Date: Wed, 24 Mar 2021 09:45:02 +0100 Message-ID: Subject: Re: [PATCH v2 01/18] vfs: add miscattr ops To: Al Viro Cc: Miklos Szeredi , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Christoph Hellwig Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 24, 2021 at 6:03 AM Al Viro wrote: > > On Mon, Mar 22, 2021 at 03:48:59PM +0100, Miklos Szeredi wrote: > > minor nit: copy_fsxattr_{to,from}_user() might be better. > > > +int fsxattr_copy_to_user(const struct miscattr *ma, struct fsxattr __user *ufa) > > +{ > > + struct fsxattr fa = { > > + .fsx_xflags = ma->fsx_xflags, > > + .fsx_extsize = ma->fsx_extsize, > > + .fsx_nextents = ma->fsx_nextents, > > + .fsx_projid = ma->fsx_projid, > > + .fsx_cowextsize = ma->fsx_cowextsize, > > + }; > > That wants a comment along the lines of "guaranteed to be gap-free", > since otherwise you'd need memset() to avoid an infoleak. Isn't structure initialization supposed to zero everything not explicitly initialized? > > > +static int ioctl_getflags(struct file *file, void __user *argp) > > +{ > > + struct miscattr ma = { .flags_valid = true }; /* hint only */ > > + unsigned int flags; > > + int err; > > + > > + err = vfs_miscattr_get(file_dentry(file), &ma); > > Umm... Just to clarify - do we plan to have that ever called via > ovl_real_ioctl()? IOW, is file_dentry() anything other than a way > to spell ->f_path.dentry here? Indeed, file_dentry() only makes sense when called from a layer inside overlayfs. The one in io_uring() seems wrong also, as a beast needing file_dentry() should never get out of overlayfs and into io_uring: --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -9297,7 +9297,7 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m) struct file *f = *io_fixed_file_slot(ctx->file_data, i); if (f) - seq_printf(m, "%5u: %s\n", i, file_dentry(f)->d_iname); + seq_printf(m, "%5u: %pD\n", i, f); else seq_printf(m, "%5u: \n", i); } Thanks, Miklos