Signed-off-by: Ivan Shapovalov <intelfx100@xxxxxxxxx> --- fs/reiser4/plugin/dir/dir.h | 2 ++ fs/reiser4/plugin/file_ops.c | 27 +++++++++++++++++++++++++++ fs/reiser4/plugin/object.c | 6 +++++- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/fs/reiser4/plugin/dir/dir.h b/fs/reiser4/plugin/dir/dir.h index 4a91ebe..5eb7bda 100644 --- a/fs/reiser4/plugin/dir/dir.h +++ b/fs/reiser4/plugin/dir/dir.h @@ -10,6 +10,8 @@ #include <linux/fs.h>*/ +long reiser4_ioctl_dir_common(struct file *file, unsigned int cmd, unsigned long arg); + /* declarations of functions implementing HASHED_DIR_PLUGIN_ID dir plugin */ /* "hashed" directory methods of dir plugin */ diff --git a/fs/reiser4/plugin/file_ops.c b/fs/reiser4/plugin/file_ops.c index 466da64..65e2b02 100644 --- a/fs/reiser4/plugin/file_ops.c +++ b/fs/reiser4/plugin/file_ops.c @@ -107,6 +107,33 @@ int reiser4_sync_file_common(struct file *file, loff_t start, loff_t end, int da return 0; } +/** reiser4_ioctl_dir_common - ioctl of struct file_operations for typical directory + */ +long reiser4_ioctl_dir_common(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct inode *inode = file_inode(file); + struct super_block *super = inode->i_sb; + reiser4_context *ctx; + int ret; + + ctx = reiser4_init_context(super); + if (IS_ERR(ctx)) + return PTR_ERR(ctx); + + switch (cmd) { + case FITRIM: + warning("intelfx-62", "FITRIM ioctl not implemented"); + /* fall-through to -ENOSYS */ + + default: + ret = RETERR(-ENOSYS); + break; + } + + reiser4_exit_context(ctx); + return ret; +} + /* * Local variables: * c-indentation-style: "K&R" diff --git a/fs/reiser4/plugin/object.c b/fs/reiser4/plugin/object.c index 553f1e2..ce09a8a 100644 --- a/fs/reiser4/plugin/object.c +++ b/fs/reiser4/plugin/object.c @@ -251,7 +251,11 @@ static struct file_operations directory_f_ops = { .read = generic_read_dir, .iterate = reiser4_iterate_common, .release = reiser4_release_dir_common, - .fsync = reiser4_sync_common + .fsync = reiser4_sync_common, +#ifdef CONFIG_COMPAT + .compat_ioctl = reiser4_ioctl_dir_common, +#endif + .unlocked_ioctl = reiser4_ioctl_dir_common }; static struct address_space_operations directory_a_ops = { .writepage = writepage_bugop, -- 2.0.4 -- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html