forked from openzfs/zfs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Linux 4.0 compat: bdi_setup_and_register()
The 'capabilities' argument which was passed to bdi_setup_and_register() has been removed. File systems should no longer pass BDI_CAP_MAP_COPY. For our purposes this means there are now three different interfaces which must be handled. A zpl_bdi_setup_and_register() wrapper function has been introduced to provide a single interface to the ZPL code. * 2.6.32 - 2.6.33, bdi_setup_and_register() is not exported. * 2.6.34 - 3.19, bdi_setup_and_register() takes 3 arguments. * 4.0 - x.y, bdi_setup_and_register() takes 2 arguments. I've also taken this opportunity to remove HAVE_BDI because kernels older then 2.6.32 are no longer supported. All kernels newer than this will have one of the above interfaces. Signed-off-by: Brian Behlendorf <[email protected]> Signed-off-by: Chunwei Chen <[email protected]> Closes openzfs#3128
- Loading branch information
1 parent
4ec15b8
commit 8c45def
Showing
5 changed files
with
49 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,36 @@ | ||
dnl # | ||
dnl # 2.6.34 API change | ||
dnl # The bdi_setup_and_register() helper function is avaliable and | ||
dnl # exported by the kernel. This is a trivial helper function but | ||
dnl # using it significantly simplifies the code surrounding setting | ||
dnl # up and tearing down the bdi structure. | ||
dnl # 2.6.32 - 2.6.33, bdi_setup_and_register() is not exported. | ||
dnl # 2.6.34 - 3.19, bdi_setup_and_register() takes 3 arguments. | ||
dnl # 4.0 - x.y, bdi_setup_and_register() takes 2 arguments. | ||
dnl # | ||
AC_DEFUN([ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER], | ||
[AC_MSG_CHECKING([whether bdi_setup_and_register() is available]) | ||
AC_DEFUN([ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER], [ | ||
AC_MSG_CHECKING([whether bdi_setup_and_register() wants 2 args]) | ||
ZFS_LINUX_TRY_COMPILE_SYMBOL([ | ||
#include <linux/backing-dev.h> | ||
], [ | ||
int r = bdi_setup_and_register(NULL, NULL, 0); | ||
r = *(&r); | ||
struct backing_dev_info bdi; | ||
char *name = "bdi"; | ||
(void) bdi_setup_and_register(&bdi, name); | ||
], [bdi_setup_and_register], [mm/backing-dev.c], [ | ||
AC_MSG_RESULT(yes) | ||
AC_DEFINE(HAVE_BDI_SETUP_AND_REGISTER, 1, | ||
[bdi_setup_and_register() is available]) | ||
AC_DEFINE(HAVE_2ARGS_BDI_SETUP_AND_REGISTER, 1, | ||
[bdi_setup_and_register() wants 2 args]) | ||
], [ | ||
AC_MSG_RESULT(no) | ||
AC_MSG_CHECKING([whether bdi_setup_and_register() wants 3 args]) | ||
ZFS_LINUX_TRY_COMPILE_SYMBOL([ | ||
#include <linux/backing-dev.h> | ||
], [ | ||
struct backing_dev_info bdi; | ||
char *name = "bdi"; | ||
unsigned int cap = BDI_CAP_MAP_COPY; | ||
(void) bdi_setup_and_register(&bdi, name, cap); | ||
], [bdi_setup_and_register], [mm/backing-dev.c], [ | ||
AC_MSG_RESULT(yes) | ||
AC_DEFINE(HAVE_3ARGS_BDI_SETUP_AND_REGISTER, 1, | ||
[bdi_setup_and_register() wants 3 args]) | ||
], [ | ||
AC_MSG_RESULT(no) | ||
]) | ||
]) | ||
]) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters