Simplify BDI integration

Update the code to use the bdi_setup_and_register() helper to
simplify the bdi integration code.  The updated code now just
registers the bdi during mount and destroys it during unmount.

The only complication is that for 2.6.32 - 2.6.33 kernels the
helper wasn't available so in these cases the zfs code must
provide it.  Luckily the bdi_setup_and_register() function
is trivial.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #367
This commit is contained in:
Brian Behlendorf
2011-11-07 16:39:03 -08:00
parent 591fb62f19
commit 5547c2f1bf
60 changed files with 231 additions and 41 deletions
Vendored
+106
View File
@@ -14953,6 +14953,59 @@ fi
{ $as_echo "$as_me:$LINENO: checking whether symbol bdi_setup_and_register is exported" >&5
$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; }
grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \
$LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
rc=$?
if test $rc -ne 0; then
export=0
for file in mm/backing-dev.c; do
grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" "$LINUX/$file" 2>/dev/null
rc=$?
if test $rc -eq 0; then
export=1
break;
fi
done
if test $export -eq 0; then
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
cat >>confdefs.h <<\_ACEOF
#define HAVE_BDI_SETUP_AND_REGISTER 1
_ACEOF
fi
else
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
cat >>confdefs.h <<\_ACEOF
#define HAVE_BDI_SETUP_AND_REGISTER 1
_ACEOF
fi
if test "$LINUX_OBJ" != "$LINUX"; then
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
@@ -19509,6 +19562,59 @@ fi
{ $as_echo "$as_me:$LINENO: checking whether symbol bdi_setup_and_register is exported" >&5
$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; }
grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \
$LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
rc=$?
if test $rc -ne 0; then
export=0
for file in mm/backing-dev.c; do
grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" "$LINUX/$file" 2>/dev/null
rc=$?
if test $rc -eq 0; then
export=1
break;
fi
done
if test $export -eq 0; then
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
cat >>confdefs.h <<\_ACEOF
#define HAVE_BDI_SETUP_AND_REGISTER 1
_ACEOF
fi
else
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
cat >>confdefs.h <<\_ACEOF
#define HAVE_BDI_SETUP_AND_REGISTER 1
_ACEOF
fi
if test "$LINUX_OBJ" != "$LINUX"; then
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"