Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3339977pxv; Sun, 18 Jul 2021 19:39:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz+RLgycBuqahWHy8ly6xPWZ6dReW8GHfBap7qOixyUDLIhSTqvyO7UfxgtlKR4k47VtQec X-Received: by 2002:a17:906:7151:: with SMTP id z17mr25712892ejj.166.1626662348608; Sun, 18 Jul 2021 19:39:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626662348; cv=none; d=google.com; s=arc-20160816; b=oNtgyq5kGYLFBUJeouQjMSqf6TfFKTj5BmDntj38pKCg/zN6xUNPprDMRy4Kefwsg5 kUlMtFRtX6Xtm9gXT8Z2BSoJDKM0jjjmyQgYP6OYAJkHNQ8Ge6P+H5/octhWPOLAsQXj 5lIVAaTbbcih65yLfy6mEjpF8k4jEWBl3UKNjd3GIaloIS54Fxbt0CjRnW/QY3ltZ7UI GdSAI73h6ULBxK9DlaDU/nq92OjUKtRKtmph0I4LaxYkia/1SdMKgBkr2jidZ9SpTCv7 l4LKxCnmp6yVRP2HINm8MnSe2F+N+gF0c0jyGO61GFKQTolnNmjQKb090XeZIDmGxLzZ ma3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=GYuAO90cLdOod0xjQm1AUlrJ+DhIY+a2x4Ou0OuYHM4=; b=uvXun1A7WlBEg0Ged09nkFUUsEIU14TCGJ3R2n2R6XNQA94rRjwq2ZL3HcIc/ZDt9m ePLsZ1q7xxLVzyKPXz5MbCCqVGAIBXL6gKosdBQIOmkn+2RjppXWBHkI3bPrOoOCVmtP bh/AHP6lt+jzlUZdflrscZUX1ttKaSTHckJ9fxO35Gk1JRwjp8rV0kYKgxxHyt8XownA KfcM1Uqgk5l5asJF8qeu59mMLFZwRYmg2PmY+FmOrj1ehMDsXjC94VBxDb1CbjNNouUY omZSNfbMLCcI92+FMZIg7u6Y0+W6DcZfGNvLnFV3lbK3V325U3tiAhDe9SLl+evJ5/jm EXbg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j21si20390654edq.100.2021.07.18.19.38.39; Sun, 18 Jul 2021 19:39:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233759AbhGSClf (ORCPT + 99 others); Sun, 18 Jul 2021 22:41:35 -0400 Received: from out30-132.freemail.mail.aliyun.com ([115.124.30.132]:53890 "EHLO out30-132.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233720AbhGSClf (ORCPT ); Sun, 18 Jul 2021 22:41:35 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R201e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=alimailimapcm10staff010182156082;MF=jefflexu@linux.alibaba.com;NM=1;PH=DS;RN=4;SR=0;TI=SMTPD_---0UgAj7zf_1626662314; Received: from localhost(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0UgAj7zf_1626662314) by smtp.aliyun-inc.com(127.0.0.1); Mon, 19 Jul 2021 10:38:34 +0800 From: Jeffle Xu To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, djwong@kernel.org Subject: [PATCH v2] vfs: only allow SETFLAGS to set DAX flag on files and dirs Date: Mon, 19 Jul 2021 10:38:34 +0800 Message-Id: <20210719023834.104053-1-jefflexu@linux.alibaba.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org This is similar to commit dbc77f31e58b ("vfs: only allow FSSETXATTR to set DAX flag on files and dirs"). Though the underlying filesystems may have filtered invalid flags, e.g., ext4_mask_flags() called in ext4_fileattr_set(), also check it in VFS layer. Signed-off-by: Jeffle Xu --- changes since v1: - add separate parentheses surrounding flag tests --- fs/ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ioctl.c b/fs/ioctl.c index 1e2204fa9963..90cfaa4db03a 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c @@ -835,7 +835,7 @@ static int fileattr_set_prepare(struct inode *inode, * It is only valid to set the DAX flag on regular files and * directories on filesystems. */ - if ((fa->fsx_xflags & FS_XFLAG_DAX) && + if (((fa->fsx_xflags & FS_XFLAG_DAX) || (fa->flags & FS_DAX_FL)) && !(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) return -EINVAL; -- 2.27.0