Browse Source

Add idmap mount support

pull/1523/head
Antonio SJ Musumeci 2 months ago
parent
commit
cad5acc0aa
  1. 1
      libfuse/include/fuse_common.h
  2. 5
      libfuse/lib/fuse_lowlevel.cpp
  3. 1
      src/fuse_init.cpp

1
libfuse/include/fuse_common.h

@ -133,6 +133,7 @@ struct fuse_file_info_t
#define FUSE_CAP_PASSTHROUGH (1ULL << 25)
#define FUSE_CAP_HANDLE_KILLPRIV (1ULL << 26)
#define FUSE_CAP_HANDLE_KILLPRIV_V2 (1ULL << 27)
#define FUSE_CAP_ALLOW_IDMAP (1ULL << 28)
/**
* Ioctl flags

5
libfuse/lib/fuse_lowlevel.cpp

@ -1203,6 +1203,8 @@ do_init(fuse_req_t req,
f->conn.capable |= FUSE_CAP_HANDLE_KILLPRIV;
if(inargflags & FUSE_HANDLE_KILLPRIV_V2)
f->conn.capable |= FUSE_CAP_HANDLE_KILLPRIV_V2;
if(inargflags & FUSE_ALLOW_IDMAP)
f->conn.capable |= FUSE_CAP_ALLOW_IDMAP;
}
else
{
@ -1280,6 +1282,9 @@ do_init(fuse_req_t req,
outargflags |= FUSE_HANDLE_KILLPRIV;
if(f->conn.want & FUSE_CAP_HANDLE_KILLPRIV_V2)
outargflags |= FUSE_HANDLE_KILLPRIV_V2;
if(f->conn.want & FUSE_CAP_ALLOW_IDMAP)
outargflags |= FUSE_ALLOW_IDMAP;
if(f->conn.want & FUSE_CAP_PASSTHROUGH)
{
outargflags |= FUSE_PASSTHROUGH;

1
src/fuse_init.cpp

@ -206,6 +206,7 @@ FUSE::init(fuse_conn_info *conn_)
::_want_if_capable(conn_,FUSE_CAP_POSIX_ACL,&cfg.posix_acl);
::_want_if_capable(conn_,FUSE_CAP_READDIR_PLUS,&cfg.readdirplus);
::_want_if_capable(conn_,FUSE_CAP_WRITEBACK_CACHE,&cfg.writeback_cache);
::_want_if_capable(conn_,FUSE_CAP_ALLOW_IDMAP);
// ::_want_if_capable(conn_,FUSE_CAP_READDIR_PLUS_AUTO);
::_want_if_capable_max_pages(conn_,cfg);
conn_->want &= ~FUSE_CAP_POSIX_LOCKS;

Loading…
Cancel
Save