MarFS provides a scalable near-POSIX file system by using one or more POSIX file systems as a scalable metadata component and one or more data stores (object, file, etc) as a scalable data component.
fuse_chmod(), fuse_open() and fuse_mknod() could get umask as fuse_get_context()->umask. They could then pass this as an arg to their libmarfs counterparts. Then pftool's MARFS_Path should do something similar, using umask().
[NOTE: umask() sets the umask to the argument and returns the old value. So I guess one must call it twice, to retrieve the current value without changing it, leaving it momentarily wrong, during the period between the two calls.]
fuse_chmod()
,fuse_open()
andfuse_mknod()
could get umask asfuse_get_context()->umask
. They could then pass this as an arg to their libmarfs counterparts. Then pftool'sMARFS_Path
should do something similar, usingumask()
.[NOTE: umask() sets the umask to the argument and returns the old value. So I guess one must call it twice, to retrieve the current value without changing it, leaving it momentarily wrong, during the period between the two calls.]