From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-it0-f43.google.com ([209.85.214.43]:35828 "EHLO mail-it0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932908AbcH2Nqo (ORCPT ); Mon, 29 Aug 2016 09:46:44 -0400 Received: by mail-it0-f43.google.com with SMTP id x131so103493472ite.0 for ; Mon, 29 Aug 2016 06:46:43 -0700 (PDT) From: Seth Forshee To: Miklos Szeredi Cc: fuse-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, "Eric W. Biederman" , Michael j Theall , =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= , Nikolaus Rath , Seth Forshee Subject: [PATCH 0/2] Support for posix ACLs in fuse Date: Mon, 29 Aug 2016 08:46:35 -0500 Message-Id: <1472478397-131967-1-git-send-email-seth.forshee@canonical.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi Miklos, Here's an updated set of patches for supporting posix ACLs in fuse. I think I've incorporated all the feedback from the last RFC series, and so I've dropped the RFC this time. I also pushed to github the changes I made to libfuse for testing this. They're a little rough and probably not 100% complete, but it is sufficient for exercising the functionality of these patches with fusexmp. https://github.com/sforshee/libfuse/tree/posix-acl Changes since RFC v3: - Add terminating NULL element to fuse_xattr_handlers array. - Remove the FUSE_FS_POSIX_ACL config option and select FS_POSIX_ACL whenever FUSE_FS is enabled. - Use an INIT flag to negotiate ACL support with userspace, only when default_permissions is enabled. - Use a different set of xattr handlers when ACL support is negotiated, preserving the current behavior whenever ACLs are not being enforced by the kernel. - Use a PAGE_SIZE buffer initially in fuse_get_acl() and fall back to querying the xattr size only if that isn't large enough. - Remove code to keep ACLs and file mode in sync in the kernel. FUSE userspace will be responsible for this. Thanks, Seth Seth Forshee (2): fuse: Use generic xattr ops fuse: Add posix ACL support fs/fuse/Kconfig | 1 + fs/fuse/Makefile | 2 +- fs/fuse/acl.c | 100 ++++++++++++++++++++++++ fs/fuse/dir.c | 192 ++++++++-------------------------------------- fs/fuse/fuse_i.h | 23 ++++++ fs/fuse/inode.c | 10 +++ fs/fuse/xattr.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/fuse.h | 3 + 8 files changed, 364 insertions(+), 159 deletions(-) create mode 100644 fs/fuse/acl.c create mode 100644 fs/fuse/xattr.c