Commit b27ddd46 authored by David Howells's avatar David Howells

fscache: Pass the correct cancelled indications to fscache_op_complete()

The last parameter to fscache_op_complete() is a bool indicating whether or
not the operation was cancelled.  A lot of the time the inverse value is
given or no differentiation is made.  Fix this.
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
parent bfa3837e
...@@ -185,9 +185,11 @@ static void fscache_attr_changed_op(struct fscache_operation *op) ...@@ -185,9 +185,11 @@ static void fscache_attr_changed_op(struct fscache_operation *op)
fscache_stat_d(&fscache_n_cop_attr_changed); fscache_stat_d(&fscache_n_cop_attr_changed);
if (ret < 0) if (ret < 0)
fscache_abort_object(object); fscache_abort_object(object);
fscache_op_complete(op, ret < 0);
} else {
fscache_op_complete(op, true);
} }
fscache_op_complete(op, true);
_leave(""); _leave("");
} }
...@@ -780,11 +782,12 @@ static void fscache_write_op(struct fscache_operation *_op) ...@@ -780,11 +782,12 @@ static void fscache_write_op(struct fscache_operation *_op)
cookie = object->cookie; cookie = object->cookie;
if (!fscache_object_is_active(object)) { if (!fscache_object_is_active(object)) {
/* If we get here, then the on-disk cache object likely longer /* If we get here, then the on-disk cache object likely no
* exists, so we should just cancel this write operation. * longer exists, so we should just cancel this write
* operation.
*/ */
spin_unlock(&object->lock); spin_unlock(&object->lock);
fscache_op_complete(&op->op, false); fscache_op_complete(&op->op, true);
_leave(" [inactive]"); _leave(" [inactive]");
return; return;
} }
...@@ -797,7 +800,7 @@ static void fscache_write_op(struct fscache_operation *_op) ...@@ -797,7 +800,7 @@ static void fscache_write_op(struct fscache_operation *_op)
* cancel this write operation. * cancel this write operation.
*/ */
spin_unlock(&object->lock); spin_unlock(&object->lock);
fscache_op_complete(&op->op, false); fscache_op_complete(&op->op, true);
_leave(" [cancel] op{f=%lx s=%u} obj{s=%s f=%lx}", _leave(" [cancel] op{f=%lx s=%u} obj{s=%s f=%lx}",
_op->flags, _op->state, object->state->short_name, _op->flags, _op->state, object->state->short_name,
object->flags); object->flags);
...@@ -851,7 +854,7 @@ static void fscache_write_op(struct fscache_operation *_op) ...@@ -851,7 +854,7 @@ static void fscache_write_op(struct fscache_operation *_op)
spin_unlock(&cookie->stores_lock); spin_unlock(&cookie->stores_lock);
clear_bit(FSCACHE_OBJECT_PENDING_WRITE, &object->flags); clear_bit(FSCACHE_OBJECT_PENDING_WRITE, &object->flags);
spin_unlock(&object->lock); spin_unlock(&object->lock);
fscache_op_complete(&op->op, true); fscache_op_complete(&op->op, false);
_leave(""); _leave("");
} }
......
...@@ -185,7 +185,7 @@ static inline void fscache_retrieval_complete(struct fscache_retrieval *op, ...@@ -185,7 +185,7 @@ static inline void fscache_retrieval_complete(struct fscache_retrieval *op,
{ {
atomic_sub(n_pages, &op->n_pages); atomic_sub(n_pages, &op->n_pages);
if (atomic_read(&op->n_pages) <= 0) if (atomic_read(&op->n_pages) <= 0)
fscache_op_complete(&op->op, true); fscache_op_complete(&op->op, false);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment