diff options
author | Hajo Möller <[email protected]> | 2016-10-26 19:30:43 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-10-26 10:30:43 -0700 |
commit | e02aaf17f15ad274fa1f24c9c826f1477911ea3f (patch) | |
tree | 3190cb161bb2665f1e4e647d72b0ca98c7d56130 /include | |
parent | 76a87a902ef031432a855fb341cf35291e2be2b6 (diff) |
Fix lookup_bdev() on Ubuntu
Ubuntu added support for checking inode permissions to lookup_bdev() in kernel
commit 193fb6a2c94fab8eb8ce70a5da4d21c7d4023bee (merged in 4.4.0-6.21).
Upstream bug: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1636517
This patch adds a test for Ubuntu's variant of lookup_bdev() to configure and
calls the function in the correct way.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Hajo Möller <[email protected]>
Closes #5336
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blkdev_compat.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/include/linux/blkdev_compat.h b/include/linux/blkdev_compat.h index bff93ff54..1f90b9825 100644 --- a/include/linux/blkdev_compat.h +++ b/include/linux/blkdev_compat.h @@ -263,12 +263,21 @@ bio_set_flags_failfast(struct block_device *bdev, int *flags) /* * 2.6.27 API change - * The function was exported for use, prior to this it existed by the + * The function was exported for use, prior to this it existed but the * symbol was not exported. + * + * 4.4.0-6.21 API change for Ubuntu + * lookup_bdev() gained a second argument, FMODE_*, to check inode permissions. */ -#ifndef HAVE_LOOKUP_BDEV -#define lookup_bdev(path) ERR_PTR(-ENOTSUP) -#endif +#ifdef HAVE_1ARG_LOOKUP_BDEV +#define vdev_lookup_bdev(path) lookup_bdev(path) +#else +#ifdef HAVE_2ARGS_LOOKUP_BDEV +#define vdev_lookup_bdev(path) lookup_bdev(path, 0) +#else +#define vdev_lookup_bdev(path) ERR_PTR(-ENOTSUP) +#endif /* HAVE_2ARGS_LOOKUP_BDEV */ +#endif /* HAVE_1ARG_LOOKUP_BDEV */ /* * 2.6.30 API change |