Message ID | 1579880839-31466-4-git-send-email-aleksandar.markovic@rt-rk.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | linux-user: Add support for fs and fd ioctls | expand |
Le 24/01/2020 à 16:47, Aleksandar Markovic a écrit : > From: Aleksandar Markovic <amarkovic@wavecomp.com> > > Both FIFREEZE and FITHAW ioctls accept an integer as their third > argument. > > All ioctls in this group (FI* ioctl) are guarded with "#ifdef", so the > guards are used in this implementation too for consistency (however, > many of ioctls in FI* group became old enough that their #ifdef guards > could be removed, bit this is out of the scope of this patch). They have been added in v2.6.29 Could you add this information coming from the kernel commit adding them: o Freeze the filesystem int ioctl(int fd, int FIFREEZE, arg) fd: The file descriptor of the mountpoint FIFREEZE: request code for the freeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 o Unfreeze the filesystem int ioctl(int fd, int FITHAW, arg) fd: The file descriptor of the mountpoint FITHAW: request code for unfreeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 Error number: If the filesystem has already been unfrozen, errno is set to EINVAL. > Reviewed-by: Laurent Vivier <laurent@vivier.eu> > Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> > --- > linux-user/ioctls.h | 6 ++++++ > linux-user/syscall_defs.h | 4 ++++ > 2 files changed, 10 insertions(+) > > diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h > index 944fbeb..adc07ad 100644 > --- a/linux-user/ioctls.h > +++ b/linux-user/ioctls.h > @@ -152,6 +152,12 @@ > #ifdef FIBMAP > IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG)) > #endif > +#ifdef FIFREEZE > + IOCTL(FIFREEZE, IOC_W | IOC_R, TYPE_INT) > +#endif > +#ifdef FITHAW > + IOCTL(FITHAW, IOC_W | IOC_R, TYPE_INT) > +#endif > #ifdef FITRIM > IOCTL(FITRIM, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_fstrim_range))) > #endif > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index 8761841..ae4c048 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -950,7 +950,11 @@ struct target_rtc_pll_info { > #define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */ > #define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */ > > +#define TARGET_FIFREEZE TARGET_IOWR('X', 119, int) /* Freeze */ > +#define TARGET_FITHAW TARGET_IOWR('X', 120, int) /* Thaw */ > +#ifdef FITRIM > #define TARGET_FITRIM TARGET_IOWR('X', 121, struct fstrim_range) > +#endif move "#ifdef FITRIM" to previous patch. > #define TARGET_FICLONE TARGET_IOW(0x94, 9, int) > #define TARGET_FICLONERANGE TARGET_IOW(0x94, 13, struct file_clone_range) > >
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 944fbeb..adc07ad 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -152,6 +152,12 @@ #ifdef FIBMAP IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG)) #endif +#ifdef FIFREEZE + IOCTL(FIFREEZE, IOC_W | IOC_R, TYPE_INT) +#endif +#ifdef FITHAW + IOCTL(FITHAW, IOC_W | IOC_R, TYPE_INT) +#endif #ifdef FITRIM IOCTL(FITRIM, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_fstrim_range))) #endif diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 8761841..ae4c048 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -950,7 +950,11 @@ struct target_rtc_pll_info { #define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */ #define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */ +#define TARGET_FIFREEZE TARGET_IOWR('X', 119, int) /* Freeze */ +#define TARGET_FITHAW TARGET_IOWR('X', 120, int) /* Thaw */ +#ifdef FITRIM #define TARGET_FITRIM TARGET_IOWR('X', 121, struct fstrim_range) +#endif #define TARGET_FICLONE TARGET_IOW(0x94, 9, int) #define TARGET_FICLONERANGE TARGET_IOW(0x94, 13, struct file_clone_range)