Skip to content

RFC Support for posix acls in fuse

Seth Forshee linux-fsdevel 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 RFC Latest2 patches 21 repliesIn review
  2. v1 RFC1 patch 17 repliesSuperseded

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2fuse: Use generic xattr opsfs/fuse/Makefile fs/fuse/dir.c fs/fuse/fuse_i.h +2 more+201 -1572 replies
2/2fuse: Add posix acl supportfs/fuse/Kconfig fs/fuse/Makefile fs/fuse/acl.c +4 more+279 -811 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [RFC v3 0/2] Support for posix acls in fuse

I have some updates from the pervious RFC patch for adding posix acl support into fuse. Here's a high-level summary of the changes:

- Split out changes to use xattr handlers into a separate patch.
- Split out xattr and acl code into their own files, as dir.c was becoming rather long.
- Add a CONFIG_FUSE_FS_POSIX_ACL config option.
- Add some pieces that were missing for default acls.
- Bug fixes.
- Remove passthrough of acl xattrs when fuse acl support is disabled or default_permissions is not used.

This last change is user visible, but as fuse filesystems cannot meaninfully support acls today it's not really a regression.

There's also a problem with default acls that I'm not sure there's currently a solution for. As far as I can tell FUSE_CREATE doesn't give back any indication of whether an existing file was opened or a new file was created. Without knowing that I cannot know whether or not the inode should inherit default acls from its parent. Is there any way I can tell whether or not FUSE_CREATE created a new object?

Thanks,
Seth

Seth Forshee (2):
fuse: Use generic xattr ops
fuse: Add posix acl support

 fs/fuse/Kconfig  |  13 ++++
 fs/fuse/Makefile |   2 +-
 fs/fuse/acl.c    | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/fuse/dir.c    | 195 ++++++++++-------------------------------------------
 fs/fuse/fuse_i.h |  34 ++++++++++
 fs/fuse/inode.c  |   3 +
 fs/fuse/xattr.c  | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 474 insertions(+), 159 deletions(-)
 create mode 100644 fs/fuse/acl.c
 create mode 100644 fs/fuse/xattr.c