Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2246453imm; Sun, 9 Sep 2018 20:04:26 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYcUM6A/LYkH2+RGMAdfIAFX4FX9cHvRMc+ydOitIMBM2+RrgGNIyWMsrLf8bB05taH9Rh9 X-Received: by 2002:a62:d8c4:: with SMTP id e187-v6mr21434819pfg.113.1536548666038; Sun, 09 Sep 2018 20:04:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536548666; cv=none; d=google.com; s=arc-20160816; b=siLg9J6+5sfuOe4uWTMIZrk022t1HP91AzXx10/tusror3x3HI0nRU4Zuxy1kGW1XS 4hmybXI5U9rDL05qVy03JV3JEaPmU8yqgTsWLDn8GxbOX76VL4KElJ7ZiSH55N74EYyf r3SMGL17yy/QTcTmbHBSDz5FcKFJ0mIYoy2sZWGPh4vhELRp9/qA1GJX+sTorHgQDgqp dUSkOSidJvTcuLFVe6BdKRhb8VJQ3TCzeTrXSYVIPOeFWyTK1XmD7vT+k1sTkm1ELloP ZmWhWRMk+QicMlDoW93TAg51lU2fpmVaWgaTTRkV3GtIIKpC/G+vSF+TWCrF2Vj1FLiW 2Q8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:message-id :subject:to:from:date; bh=ABLy5QVWRYvWDL6KyPR+4TpUh09j97MGRosj/Eve5SI=; b=Ry0HZdLNFS08BcgK2cKPPnohBmvDxt/CKEWHva6p7RFx+WT4/pCmxAfJHDbHdjuHnH PNihisEnkY8k8mw9sbPis4iHwvL6ZJsfBYU51MgLmHDPUJrEKtEe3duGHVswgjwmPUf9 U8qlmc0w2yxyDi1lN0FRbAtmE3iAuxB55cX56R+F1z+QT7kPoXyaOWbIlN/JtNAE0Itb RyMF6xbEQqI3tWQsx3AEul/wWvAJI76hwiK7qDjCZnzrjk0Y1oW5FdS1F8xYukpyG4E9 17KJ8eBmgQrNAZ6a+vdDLH0n8Xi+/an1DvZocr9PhZ3x4YnmjwLMMpYAdfJLHEZqEH9k 04+Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b5-v6si14963415ple.241.2018.09.09.20.04.07; Sun, 09 Sep 2018 20:04:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726297AbeIJHyk (ORCPT + 99 others); Mon, 10 Sep 2018 03:54:40 -0400 Received: from smtp-out-no.shaw.ca ([64.59.134.13]:58192 "EHLO smtp-out-no.shaw.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726106AbeIJHyk (ORCPT ); Mon, 10 Sep 2018 03:54:40 -0400 X-Greylist: delayed 18536 seconds by postgrey-1.27 at vger.kernel.org; Mon, 10 Sep 2018 03:54:39 EDT Received: from fanir.tuyoix.net ([68.150.218.192]) by shaw.ca with ESMTP id z7f8fwEklWppDz7f9fTzwb; Sun, 09 Sep 2018 15:54:36 -0600 X-Authority-Analysis: v=2.3 cv=YIcrNiOx c=1 sm=1 tr=0 a=LfNn7serMq+1bQZBlMsSfQ==:117 a=LfNn7serMq+1bQZBlMsSfQ==:17 a=JBFolyDoGHsA:10 a=nlC_4_pT8q9DhB4Ho9EA:9 a=3I1X_3ewAAAA:8 a=OxNYDVJMC5hWt7gQjnkA:9 a=QEXdDO2ut3YA:10 a=VG9N9RgkD3hcbI6YpJ1l:22 Received: from CLUIJ (cluij.tuyoix.net [192.168.144.15]) (authenticated bits=0) by fanir.tuyoix.net (8.15.2/8.15.2) with ESMTPSA id w89LsWgO015563 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 9 Sep 2018 15:54:33 -0600 Date: Sun, 9 Sep 2018 15:54:19 -0600 (Mountain Daylight Time) From: Marc Aurele La France To: Greg Kroah-Hartman , Tejun Heo , linux-kernel@vger.kernel.org, Alexander Viro , linux-fsdevel@vger.kernel.org, Andreas Gruenbacher Subject: sysfs: Do not return POSIX ACL xattrs via listxattr() Message-ID: User-Agent: Alpine 2.20 (WNT 67 2015-01-07) MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="79591-22480-1536530061=:4216" X-CMAE-Envelope: MS4wfE7BOFHeJIs/jCQu2lY2bQx8vbMOZyBDzScoYtPfC87HnWNLCFh09wx0EGwHwbFHGP51/XHy87u6MmZYdjMsJ/vRJDanfl45eKcSr3lgCpTHGUnKewf5 eId1nUtKE+7g19l6IJzwto02WJ+UctX9vv5O1+BXKqHUcSWkhF9zJjY3Fie168X7eVB4RyidnhkBYep8JvlIIbLKK9HcNNFIWFFw1zoHD4IXvMPPdImlrW/r yfqmz7vyz9a006x/lKMfp5eIQYna0ugbCVAnpA3fj53IBhQNJJuvCjauplqL/CkRU2P4gXjlOkfQYXwpcu5gWgFU+p+jHrI1QYgPMPk+4RbVC1qUNiwgypNP 077IXSxeO+nS/xlpeOWQR4eWfIjvng== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --79591-22480-1536530061=:4216 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Greetings. Commit 786534b92f3ce68f4afc8a761c80b76887797b0a "tmpfs: listxattr should include POSIX ACL xattrs", which first appeared in 4.5 kernels, introduced a regression whereby listxattr() syscalls on anything in sysfs, or its mountpoint, return the name of the two POSIX ACL xattrs, but attempts to retrieve these values are denied with EOPNOTSUP. For example ... # getfattr -d --match=- /sys /sys: system.posix_acl_access: Operation not supported /sys: system.posix_acl_default: Operation not supported # This inconsistent behaviour confuses rsync(1) (among others) when it runs into a sysfs mountpoint, even when told to not descend into it. This issue occurs because simple_xattr_list() does not correctly deal with cached ACLs. The suggested fix below was developed with a 4.18.7 kernel, but should apply, modulo patch fuzz, to any kernel >= 4.7. A fix for 4.5 <= kernels < 4.7 is trivially different, but I won't bother given such kernels are no longer maintained. Note that the only other simple_xattr_list() caller, shmem, avoids this glitch by previously calling cache_no_acl() on all inodes it creates, so perhaps sysfs/kernfs should do the same. Please Reply-To-All. Thanks and have a great day. Marc. Signed-off-by: Marc Aurèle La France --- a/fs/xattr.c +++ b/fs/xattr.c @@ -949,13 +949,13 @@ ssize_t simple_xattr_list(struct inode *inode, struct simple_xattrs *xattrs, int err = 0; #ifdef CONFIG_FS_POSIX_ACL - if (inode->i_acl) { + if (inode->i_acl && !is_uncached_acl(inode->i_acl)) { err = xattr_list_one(&buffer, &remaining_size, XATTR_NAME_POSIX_ACL_ACCESS); if (err) return err; } - if (inode->i_default_acl) { + if (inode->i_default_acl && !is_uncached_acl(inode->i_default_acl)) { err = xattr_list_one(&buffer, &remaining_size, XATTR_NAME_POSIX_ACL_DEFAULT); if (err) --79591-22480-1536530061=:4216--