Red Hat Bugzilla – Bug 139775
Filesystem quota GFP_KERNEL deadlock kswapd on dqio_sem.
Last modified: 2010-10-21 22:42:03 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1)
Description of problem:
From IT#52503 reported by Fujitsu
Any filesystem call (sys_quotactl e.g.) that has read_dquot() in their
code patch would have a chance to obtain the dqio_sem and subsequently
calls getdqbuf() to invoke the kmalloc(..., GFP_KERNEL) function. When
system is low on memory, this would have a chance to wakeup_kswapd().
Then it enters the prune_icache code path that eventually calls
write_dquot() and deadlock in down(dqio_sem).
Version-Release number of selected component (if applicable):
Created attachment 106925 [details]
This is the patch that should work with e.55 kernel. I'll do some testings
tomorrow (to make sure if getdqbuf() return NULL, the kernel still behaves
A patch addressing this issue has been commited to the RHEL2.1 tree. (Kernel
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.