summaryrefslogtreecommitdiffstats
path: root/fs/fscache/cookie.c
diff options
context:
space:
mode:
authorDavid Howells2018-04-04 14:41:26 +0200
committerDavid Howells2018-04-04 14:41:26 +0200
commitd0fb31ecda2c3c6092d0c2a46a6a72653e7dcabb (patch)
treeaf770d5997993875f953f637841ce331ff1f6097 /fs/fscache/cookie.c
parentfscache: Pass the correct cancelled indications to fscache_op_complete() (diff)
downloadkernel-qcow2-linux-d0fb31ecda2c3c6092d0c2a46a6a72653e7dcabb.tar.gz
kernel-qcow2-linux-d0fb31ecda2c3c6092d0c2a46a6a72653e7dcabb.tar.xz
kernel-qcow2-linux-d0fb31ecda2c3c6092d0c2a46a6a72653e7dcabb.zip
fscache: Detect multiple relinquishment of a cookie
Report if an fscache cookie is relinquished multiple times by the netfs. Signed-off-by: David <dhowells@redhat.com>
Diffstat (limited to 'fs/fscache/cookie.c')
-rw-r--r--fs/fscache/cookie.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
index d705125665f0..98d22f495cd8 100644
--- a/fs/fscache/cookie.c
+++ b/fs/fscache/cookie.c
@@ -602,7 +602,8 @@ void __fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
atomic_read(&cookie->n_active), retire);
/* No further netfs-accessing operations on this cookie permitted */
- set_bit(FSCACHE_COOKIE_RELINQUISHED, &cookie->flags);
+ if (test_and_set_bit(FSCACHE_COOKIE_RELINQUISHED, &cookie->flags))
+ BUG();
__fscache_disable_cookie(cookie, retire);