Эх сурвалжийг харах

FS-Cache: Check that there are no read ops when cookie relinquished

Check that the netfs isn't trying to relinquish a cookie that still has read
operations in progress upon it.  If there are, then give log a warning and BUG.

Signed-off-by: David Howells <dhowells@redhat.com>
David Howells 12 жил өмнө
parent
commit
0f972b5696

+ 8 - 0
fs/fscache/cookie.c

@@ -452,6 +452,14 @@ void __fscache_relinquish_cookie(struct fscache_cookie *cookie, int retire)
 
 
 		_debug("RELEASE OBJ%x", object->debug_id);
 		_debug("RELEASE OBJ%x", object->debug_id);
 
 
+		if (atomic_read(&object->n_reads)) {
+			spin_unlock(&cookie->lock);
+			printk(KERN_ERR "FS-Cache:"
+			       " Cookie '%s' still has %d outstanding reads\n",
+			       cookie->def->name, atomic_read(&object->n_reads));
+			BUG();
+		}
+
 		/* detach each cache object from the object cookie */
 		/* detach each cache object from the object cookie */
 		spin_lock(&object->lock);
 		spin_lock(&object->lock);
 		hlist_del_init(&object->cookie_link);
 		hlist_del_init(&object->cookie_link);