Annotate KM_PUSHPAGE call paths with PF_NOFS
authorBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 18 Aug 2012 18:17:23 +0000 (11:17 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 27 Aug 2012 19:01:37 +0000 (12:01 -0700)
commit8630650a8d9cfba379a5b73bd95e903d577e0d8d
treecfc66fcdfb264e8b59b94f3bf3a6ecd55faa197c
parent86dd0fd9222b6103c6533036c47b908ece944460
Annotate KM_PUSHPAGE call paths with PF_NOFS

The txg_sync(), zfs_putpage(), zvol_write(), and zvol_discard()
call paths must only use KM_PUSHPAGE to avoid potential deadlocks
during direct reclaim.

This patch annotates these call paths so any accidental use of
KM_SLEEP will be quickly detected.   In the interest of stability
if debugging is disabled the offending allocation will have its
GFP flags automatically corrected.  When debugging is enabled
any misuse will be treated as a fatal error.

This patch is entirely for debugging.  We should be careful to
NOT become dependant on it fixing up the incorrect allocations.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
module/zfs/txg.c
module/zfs/zpl_file.c
module/zfs/zvol.c