Those to mails came around on the cachefiled ml and upstream hasn't fixed this yet. Could we include the fix in the gentoo sources? I am not really sure, hwo the actuall result is, but I experienced some kind of "not working" behaviour on cachfilesd, which I couldn't explain. I think this is related to this bug, that after some time the cache gets locked. From: Akshat Aranya <aranya@nec-labs.com> fscache_submit_exclusive_op() adds an operation to the pending list if other operations are pending. Fix the check for pending ops as n_ops must be greater than 0 at the point it is checked as it is incremented immediately before under lock. Signed-off-by: Akshat Aranya <aranya@nec-labs.com> Signed-off-by: David Howells <dhowells@redhat.com> --- fs/fscache/operation.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c index b9f34ea..48a18f1 100644 --- a/fs/fscache/operation.c +++ b/fs/fscache/operation.c @@ -101,7 +101,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object, object->n_ops++; object->n_exclusive++; /* reads and writes must wait */ - if (object->n_ops > 0) { + if (object->n_ops > 1) { atomic_inc(&op->usage); list_add_tail(&op->pend_link, &object->pending_ops); fscache_stat(&fscache_n_op_pend); fscache_submit_exclusive_op() adds an operation to the pending list if other operations are pending. Fixed the check for pending ops. Signed-off-by: Akshat Aranya <aranya@nec-labs.com> --- fs/fscache/operation.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c index b9f34ea..48a18f1 100644 --- a/fs/fscache/operation.c +++ b/fs/fscache/operation.c @@ -101,7 +101,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object, object->n_ops++; object->n_exclusive++; /* reads and writes must wait */ - if (object->n_ops > 0) { + if (object->n_ops > 1) { atomic_inc(&op->usage); list_add_tail(&op->pend_link, &object->pending_ops); fscache_stat(&fscache_n_op_pend); -- 1.7.1
where is this patch from? Was it ever submitted upstream?
It was on the cachefilesd ml with linus and some other kernel guys CCed. But no comment on that from them.
Applied in upstream .38
Release in gentoo-sources-2.6.37-r3