Loading fs/ocfs2/file.c +6 −0 Original line number Diff line number Diff line Loading @@ -1853,6 +1853,9 @@ const struct file_operations ocfs2_fops = { .aio_read = ocfs2_file_aio_read, .aio_write = ocfs2_file_aio_write, .ioctl = ocfs2_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = ocfs2_compat_ioctl, #endif .splice_read = ocfs2_file_splice_read, .splice_write = ocfs2_file_splice_write, }; Loading @@ -1862,4 +1865,7 @@ const struct file_operations ocfs2_dops = { .readdir = ocfs2_readdir, .fsync = ocfs2_sync_file, .ioctl = ocfs2_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = ocfs2_compat_ioctl, #endif }; fs/ocfs2/ioctl.c +23 −0 Original line number Diff line number Diff line Loading @@ -134,3 +134,26 @@ int ocfs2_ioctl(struct inode * inode, struct file * filp, } } #ifdef CONFIG_COMPAT long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg) { struct inode *inode = file->f_path.dentry->d_inode; int ret; switch (cmd) { case OCFS2_IOC32_GETFLAGS: cmd = OCFS2_IOC_GETFLAGS; break; case OCFS2_IOC32_SETFLAGS: cmd = OCFS2_IOC_SETFLAGS; break; default: return -ENOIOCTLCMD; } lock_kernel(); ret = ocfs2_ioctl(inode, file, cmd, arg); unlock_kernel(); return ret; } #endif fs/ocfs2/ioctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -12,5 +12,6 @@ int ocfs2_ioctl(struct inode * inode, struct file * filp, unsigned int cmd, unsigned long arg); long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg); #endif /* OCFS2_IOCTL_H */ fs/ocfs2/ocfs2_fs.h +2 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,8 @@ */ #define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) #define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) #define OCFS2_IOC32_GETFLAGS _IOR('f', 1, int) #define OCFS2_IOC32_SETFLAGS _IOW('f', 2, int) /* * Journal Flags (ocfs2_dinode.id1.journal1.i_flags) Loading Loading
fs/ocfs2/file.c +6 −0 Original line number Diff line number Diff line Loading @@ -1853,6 +1853,9 @@ const struct file_operations ocfs2_fops = { .aio_read = ocfs2_file_aio_read, .aio_write = ocfs2_file_aio_write, .ioctl = ocfs2_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = ocfs2_compat_ioctl, #endif .splice_read = ocfs2_file_splice_read, .splice_write = ocfs2_file_splice_write, }; Loading @@ -1862,4 +1865,7 @@ const struct file_operations ocfs2_dops = { .readdir = ocfs2_readdir, .fsync = ocfs2_sync_file, .ioctl = ocfs2_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = ocfs2_compat_ioctl, #endif };
fs/ocfs2/ioctl.c +23 −0 Original line number Diff line number Diff line Loading @@ -134,3 +134,26 @@ int ocfs2_ioctl(struct inode * inode, struct file * filp, } } #ifdef CONFIG_COMPAT long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg) { struct inode *inode = file->f_path.dentry->d_inode; int ret; switch (cmd) { case OCFS2_IOC32_GETFLAGS: cmd = OCFS2_IOC_GETFLAGS; break; case OCFS2_IOC32_SETFLAGS: cmd = OCFS2_IOC_SETFLAGS; break; default: return -ENOIOCTLCMD; } lock_kernel(); ret = ocfs2_ioctl(inode, file, cmd, arg); unlock_kernel(); return ret; } #endif
fs/ocfs2/ioctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -12,5 +12,6 @@ int ocfs2_ioctl(struct inode * inode, struct file * filp, unsigned int cmd, unsigned long arg); long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg); #endif /* OCFS2_IOCTL_H */
fs/ocfs2/ocfs2_fs.h +2 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,8 @@ */ #define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) #define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) #define OCFS2_IOC32_GETFLAGS _IOR('f', 1, int) #define OCFS2_IOC32_SETFLAGS _IOW('f', 2, int) /* * Journal Flags (ocfs2_dinode.id1.journal1.i_flags) Loading