Support ioctl
so we can use lsattr to list the predefine flags on files in JuiceFS, also use chattr to change that.
For the flags, we may want to support: append only (a), no atime updates (A), compressed (c), immutable (i), secure deletion (s), and undeletable (u)
See the man page of chattr, lsattr and ioctl ioctl_list for details.
ltp test: setxattr03, need support for immutable and appendonly flags
Hi, I am interested in this issue, can you give me more detailed information?
- What is the problem that this issue is expected to solve?
- What is the final functionality to be achieved?
- Do I need to submit a Proposal?
ioctl is a syscall to update a predefined flag on a file/dir, we need to do the following:
- support ioctl operation from FUSE
- persistent the flags in meta engine
- Add API to update the flags for meta engine
- For every flag, other related operations should respect it. for example, for a file with immutable flag, we should not modify it.
How 's the current progress? If nobody involves in this support, I'd like to make some contributions.
This issue is free for you to take!
@DMwangnima Update the description, feel free to take this.
Copy that~
@davies Now juicefs uses RawFileSystem interface given by go-fuse, but go-fuse doesn't support ioctl even encoding or decoding datum from ioctl syscall.
So do I need to make a PR to go-fuse to implement ioctl or make a fork form go-fuse just for juicefs?
We can fork it, add ioctl, use the fork in JuiceFS, then upstream it later.