From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC68D2951DE for ; Mon, 12 May 2025 13:23:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747056183; cv=none; b=D5QXWsj4OGgfKtTItiZqu1ax1cbdFZSMyf3WwlmAKixYIKCud3onEH+BwelJUM6sbfvtoS1wfs9Hpec0DV+aqFPOr/9+iv9Ve8SP83xeYnZEzD61EakN6V9fgcizBksBNxKZIiSeI7RjL2cJ3NVyXgWIngzM/u2k6V4R5AoYmjI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747056183; c=relaxed/simple; bh=bzJZzvvRpjn9CYUnburWeDj8PO5yPP+Ob2vNmYc/qsA=; h=From:Date:To:Cc:Subject:Message-ID:References:MIME-Version: In-Reply-To:Content-Type:Content-Disposition; b=IubSlYTC4Pk+oMPPTSgNRG6AwYDvxOJmt/1NT2PA28fNBu6Yal6JQNy2ulBXSyR4ji0xeaPfGvhzwafGKYLqlj8mbWFMU4udJJ+AsFD9SmfCe0DezpVUsaV1PX0rmDuzJg9bkz132pumuQeAGtAp2qh8LXPFvcVFtnVxDfMqXOM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=LMY94B9/; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="LMY94B9/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747056181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Rt9GtFBQJVx2og2U+6x9mcRi6vq6T7dh1csKu94DEVk=; b=LMY94B9/5SxJBQ6j1P9ZsT4nkm6snHPEBbE1NKTxHyn3vLrQwItsEou0V+k76qh8IWYWPx Cd7VZXPoQgwXS3ISOTVfXO+UhzmnBp2qRtj5gofEFQZMznbfhhPCB6hio5Tvc8+h0NsC2y hgYbnbmEdwHiXtvc8KynVobELYcT8zA= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-612-72h5Rfp3MgOAgcW7om0Ndw-1; Mon, 12 May 2025 09:22:57 -0400 X-MC-Unique: 72h5Rfp3MgOAgcW7om0Ndw-1 X-Mimecast-MFC-AGG-ID: 72h5Rfp3MgOAgcW7om0Ndw_1747056176 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-ace942ab877so466865866b.1 for ; Mon, 12 May 2025 06:22:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747056176; x=1747660976; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Rt9GtFBQJVx2og2U+6x9mcRi6vq6T7dh1csKu94DEVk=; b=YdypXFM7c3YOm760ajz13etUJ/65BT1rdVp4OxXv/Zyehjcp2ex8QORaslVMoqt0+p 7qKHOAln9eJaZNb1W70tboQSi7/T+9GyZkPcrfY4eCIXuEAPK4TKioX65Zah8/LOTSo0 16xDtWA3A245II+hS+FClBbrn7+ImWMhAAvls8ayI9+EMTYJRNUP5yAOoOZ5r5LYpvQS sOwi5wbi8dTU1kHXD0VJwmS2ix0t72tqTJT7tYCydK6zgxqzABAligPmJcPANW2y1UBQ D7ndEC1ktXrNKICVa+AT/mTer1f54DedwFGwm40fQhi50A1ZQfXIud3F0tmbXR4XW64x EEhg== X-Forwarded-Encrypted: i=1; AJvYcCWazSfRcDN0MZuXcbxg6sPw7whW/bcoK1KFLJVOxTVHn01IgPPkZ5k3b08dh3t98q1Pw+j/MzJ1Sw==@vger.kernel.org X-Gm-Message-State: AOJu0YyS5GqwchJBUmeSawuqS3Mc+i+wBtI14uyDGrfrjH8vU/sUfb1i snP2YpiV2avk4EHys62BrhxTQ4E3aRhUeMPrXF3uZ438sMwUyiquU0fMojWADjd7p7tO53/JDih aEFr1neQOqzYDmYxIEAR9eOUrZvyLlLu701lab3GrxaGfef5eLYQFifg= X-Gm-Gg: ASbGnctSxv5V0pXpT/BL2HwNLuXcxmjPm509JfCD7EIdODo1lbcc0rFP1iZuqzzFn1M HmNdezIgBoj7pIk5nWynj/AGikgUsIduq3LSA5ApPSMlK+JD6gTs7ipCbeNFO19Dqwq6sYPAbkb jdG6mdAe+iw4KlXYDnGTnL0LAVRoZxf1+iOK68pAr5fwpHkuMP6BuQnIMZU0cnRS7MMjDZoyAlK IkvExLR91YPsGZqFk3EWZwyBo0HzeEupu119EglfCd4fgSGhKbTtuoG3PM3EIm2COy69W/sXkVT VDxwtt1458jrgbn6juPmhDjEsf4xxMBGp5O2j7oc X-Received: by 2002:a17:907:6ea4:b0:ad4:d00f:b4ca with SMTP id a640c23a62f3a-ad4d00fb8fcmr36840266b.50.1747056176227; Mon, 12 May 2025 06:22:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJ1H/zptS/AHQGJ0FK52hePcKQfFfrpXhxDrhZE1E6E4AE2JiwqXtAXQ7n2gKkCn93DDW/NA== X-Received: by 2002:a17:907:6ea4:b0:ad4:d00f:b4ca with SMTP id a640c23a62f3a-ad4d00fb8fcmr36835166b.50.1747056175640; Mon, 12 May 2025 06:22:55 -0700 (PDT) Received: from thinky (109-92-26-237.static.isp.telekom.rs. [109.92.26.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad2197bd28dsm613933766b.128.2025.05.12.06.22.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 May 2025 06:22:55 -0700 (PDT) From: Andrey Albershteyn X-Google-Original-From: Andrey Albershteyn Date: Mon, 12 May 2025 15:22:52 +0200 To: Richard Henderson , Matt Turner , Russell King , Catalin Marinas , Will Deacon , Geert Uytterhoeven , Michal Simek , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Naveen N Rao , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , "David S. Miller" , Andreas Larsson , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Chris Zankel , Max Filippov , Alexander Viro , Christian Brauner , Jan Kara , =?utf-8?Q?Micka=C3=ABl_Sala=C3=BCn?= , =?utf-8?Q?G=C3=BCnther?= Noack , Arnd Bergmann , Pali =?utf-8?B?Um9ow6Fy?= , Paul Moore , James Morris , "Serge E. Hallyn" , Stephen Smalley , Ondrej Mosnacek , Tyler Hicks , Miklos Szeredi , Amir Goldstein Cc: linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, linux-api@vger.kernel.org, linux-arch@vger.kernel.org, selinux@vger.kernel.org, ecryptfs@vger.kernel.org, linux-unionfs@vger.kernel.org, linux-xfs@vger.kernel.org, Andrey Albershteyn Subject: [PATCH v5 5/7] fs: make vfs_fileattr_[get|set] return -EOPNOSUPP Message-ID: <20250512-xattrat-syscall-v5-5-ffbc7c477332@kernel.org> X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=3357; i=aalbersh@kernel.org; h=from:subject:message-id; bh=xNZgMi4eRRk641oOEdpKdfQ/bF05YfbIRMmgusqStnI=; b=owJ4nJvAy8zAJea2/JXEGuOHHIyn1ZIYMhS/7gpUUlnz86nTDU79jiMuhmaSU5Y0X4uZXFdRe Vmc8dGRozkdpSwMYlwMsmKKLOuktaYmFUnlHzGokYeZw8oEMoSBi1MAJtIRzsjwXWjjY7HXi7bl PFdbzGTT97Nn+gxH75Rvx4wCZ9h+erijleGfefXLzfMlHhZ1SRydlrlHbP8WO6cPJmv/zTu7xuT VWu893ACrBku/ X-Developer-Key: i=aalbersh@kernel.org; a=openpgp; fpr=AE1B2A9562721A6FC4307C1F46A7EA18AC33E108 References: <20250512-xattrat-syscall-v5-0-ffbc7c477332@kernel.org> Precedence: bulk X-Mailing-List: linux-sh@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In-Reply-To: <20250512-xattrat-syscall-v5-0-ffbc7c477332@kernel.org> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: J98IIh0XMek-K7hhlYiPjMBNhPBlfvg2KXQjjAdHAB0_1747056176 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Future patches will add new syscalls which use these functions. As this interface won't be used for ioctls only the EOPNOSUPP is more appropriate return code. This patch coverts return code from ENOIOCTLCMD to EOPNOSUPP for vfs_fileattr_get and vfs_fileattr_set. To save old behavior translate EOPNOSUPP back for current users - overlayfs, encryptfs and fs/ioctl.c. Signed-off-by: Andrey Albershteyn --- fs/ecryptfs/inode.c | 8 +++++++- fs/file_attr.c | 12 ++++++++++-- fs/overlayfs/inode.c | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 51a5c54eb740..6bf08ff4d7f7 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c @@ -1124,7 +1124,13 @@ static int ecryptfs_removexattr(struct dentry *dentry, struct inode *inode, static int ecryptfs_fileattr_get(struct dentry *dentry, struct fileattr *fa) { - return vfs_fileattr_get(ecryptfs_dentry_to_lower(dentry), fa); + int rc; + + rc = vfs_fileattr_get(ecryptfs_dentry_to_lower(dentry), fa); + if (rc == -EOPNOTSUPP) + rc = -ENOIOCTLCMD; + + return rc; } static int ecryptfs_fileattr_set(struct mnt_idmap *idmap, diff --git a/fs/file_attr.c b/fs/file_attr.c index d9eab553dc25..d696f440fa4f 100644 --- a/fs/file_attr.c +++ b/fs/file_attr.c @@ -79,7 +79,7 @@ int vfs_fileattr_get(struct dentry *dentry, struct fileattr *fa) int error; if (!inode->i_op->fileattr_get) - return -ENOIOCTLCMD; + return -EOPNOTSUPP; error = security_inode_file_getattr(dentry, fa); if (error) @@ -239,7 +239,7 @@ int vfs_fileattr_set(struct mnt_idmap *idmap, struct dentry *dentry, int err; if (!inode->i_op->fileattr_set) - return -ENOIOCTLCMD; + return -EOPNOTSUPP; if (!inode_owner_or_capable(idmap, inode)) return -EPERM; @@ -281,6 +281,8 @@ int ioctl_getflags(struct file *file, unsigned int __user *argp) int err; err = vfs_fileattr_get(file->f_path.dentry, &fa); + if (err == -EOPNOTSUPP) + err = -ENOIOCTLCMD; if (!err) err = put_user(fa.flags, argp); return err; @@ -302,6 +304,8 @@ int ioctl_setflags(struct file *file, unsigned int __user *argp) fileattr_fill_flags(&fa, flags); err = vfs_fileattr_set(idmap, dentry, &fa); mnt_drop_write_file(file); + if (err == -EOPNOTSUPP) + err = -ENOIOCTLCMD; } } return err; @@ -314,6 +318,8 @@ int ioctl_fsgetxattr(struct file *file, void __user *argp) int err; err = vfs_fileattr_get(file->f_path.dentry, &fa); + if (err == -EOPNOTSUPP) + err = -ENOIOCTLCMD; if (!err) err = copy_fsxattr_to_user(&fa, argp); @@ -334,6 +340,8 @@ int ioctl_fssetxattr(struct file *file, void __user *argp) if (!err) { err = vfs_fileattr_set(idmap, dentry, &fa); mnt_drop_write_file(file); + if (err == -EOPNOTSUPP) + err = -ENOIOCTLCMD; } } return err; diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c index 6f0e15f86c21..096d44712bb1 100644 --- a/fs/overlayfs/inode.c +++ b/fs/overlayfs/inode.c @@ -721,7 +721,7 @@ int ovl_real_fileattr_get(const struct path *realpath, struct fileattr *fa) return err; err = vfs_fileattr_get(realpath->dentry, fa); - if (err == -ENOIOCTLCMD) + if (err == -EOPNOTSUPP) err = -ENOTTY; return err; } -- 2.47.2 -- - Andrey