Merge pull request #1137 from trapexit/btrfs-ioctl

Return NOTTY for all btrfs ioctl calls
This commit is contained in:
trapexit 2023-02-11 10:25:09 -05:00 committed by GitHub
commit b51a5970b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -44,6 +44,9 @@ typedef char IOCTL_BUF[4096];
#define IOCTL_APP_TYPE 0xDF
#define IOCTL_FILE_INFO _IOWR(IOCTL_APP_TYPE,0,IOCTL_BUF)
// From linux/btrfs.h
#define BTRFS_IOCTL_MAGIC 0x94
#ifndef FS_IOC_GETFLAGS
# define FS_IOC_GETFLAGS _IOR('f',1,long)
#endif
@ -314,6 +317,13 @@ namespace l
return (_IOC_TYPE(cmd_) == IOCTL_APP_TYPE);
}
static
bool
is_btrfs_ioctl_cmd(const unsigned long cmd_)
{
return (_IOC_TYPE(cmd_) == BTRFS_IOCTL_MAGIC);
}
static
int
ioctl_custom(const fuse_file_info_t *ffi_,
@ -340,6 +350,8 @@ namespace FUSE
void *data_,
uint32_t *out_bufsz_)
{
if(l::is_btrfs_ioctl_cmd(cmd_))
return -ENOTTY;
if(l::is_mergerfs_ioctl_cmd(cmd_))
return l::ioctl_custom(ffi_,cmd_,data_);