/* this can be called inside spin lock so use GFP_ATOMIC. */ buf = (char *)__get_free_page(GFP_ATOMIC); if (buf) { dentry = d_find_alias(page->mapping->host); ... if (dentry) dput(dentry); If it *can* be called under a spinlock, you have an obvious problem - dput() can sleep. d_find_alias() might've picked a hashed dentry with zero refcount that got unhashed by the time of dput(). Or other references used to exist, but got dropped by that point... -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html