mirror of
https://github.com/libfuse/libfuse.git
synced 2024-11-27 06:04:27 +08:00
passthrough: implemented create()
This allows calls like open(file, O_CREAT|O_RDONLY, 0200) which would otherwise fail because we cannot open the file after mknod() has created it with 0200 permissions.
This commit is contained in:
parent
0986255688
commit
20b24a16e1
@ -278,6 +278,19 @@ static int xmp_utimens(const char *path, const struct timespec ts[2],
|
||||
}
|
||||
#endif
|
||||
|
||||
static int xmp_create(const char *path, mode_t mode,
|
||||
struct fuse_file_info *fi)
|
||||
{
|
||||
int res;
|
||||
|
||||
res = open(path, fi->flags, mode);
|
||||
if (res == -1)
|
||||
return -errno;
|
||||
|
||||
fi->fh = res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int xmp_open(const char *path, struct fuse_file_info *fi)
|
||||
{
|
||||
int res;
|
||||
@ -452,6 +465,7 @@ static struct fuse_operations xmp_oper = {
|
||||
.utimens = xmp_utimens,
|
||||
#endif
|
||||
.open = xmp_open,
|
||||
.create = xmp_create,
|
||||
.read = xmp_read,
|
||||
.write = xmp_write,
|
||||
.statfs = xmp_statfs,
|
||||
|
Loading…
Reference in New Issue
Block a user