From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754189Ab3EJTdG (ORCPT ); Fri, 10 May 2013 15:33:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:32481 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753252Ab3EJTdE (ORCPT ); Fri, 10 May 2013 15:33:04 -0400 Subject: [PATCH 0/8] Fix assorted FS-Cache issues [ver #2] To: Trond.Myklebust@netapp.com, torvalds@linux-foundation.org From: David Howells Cc: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-cachefs@redhat.com, linux-kernel@vger.kernel.org Date: Fri, 10 May 2013 20:32:58 +0100 Message-ID: <20130510193257.3045.77981.stgit@warthog.procyon.org.uk> User-Agent: StGit/0.16 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Following this mail is a series of patches to fix a number of FS-Cache issues, including a number of oopses. The patches can also be found at: http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=fscache on top of a patch from Tejun Heo to fix a problem in the workqueues. The patches are also tagged: http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git tags/fscache-20130510 The patches are as follows: (1) Provide a system wait_on_atomic_t() and wake_up_atomic_t() (enhancement). (2) Don't put spin_lock() in a while-condition as spin_lock() may be wrapped with do {} while(0) (cleanup). (3) Name i_mutex lock classes rather than using numbers in CacheFiles (cleanup). (4) Don't sleep in page release if __GFP_FS is not set (deadlock vs ext4). (5) Uninline fscache_object_init() (cleanup). (6) Wrap checks on object state (cleanup). (7) Simplify the object state machine (need #5 and #6). (8) Simplify cookie retention by objects (oops fix, need #1 and #7). David --- David Howells (6): Add wait_on_atomic_t() and wake_up_atomic_t() FS-Cache: Don't sleep in page release if __GFP_FS is not set FS-Cache: Uninline fscache_object_init() FS-Cache: Wrap checks on object state FS-Cache: Fix object state machine to have separate work and wait states FS-Cache: Simplify cookie retention for fscache_objects, fixing access problems J. Bruce Fields (1): CacheFiles: name i_mutex lock class explicitly Sebastian Andrzej Siewior (1): fs/fscache: remove spin_lock() from the condition in while() fs/cachefiles/interface.c | 11 fs/cachefiles/namei.c | 10 fs/cachefiles/xattr.c | 6 fs/fscache/cache.c | 34 + fs/fscache/cookie.c | 93 +-- fs/fscache/fsdef.c | 1 fs/fscache/internal.h | 11 fs/fscache/main.c | 11 fs/fscache/netfs.c | 1 fs/fscache/object-list.c | 103 ++-- fs/fscache/object.c | 1106 +++++++++++++++++++++-------------------- fs/fscache/operation.c | 36 + fs/fscache/page.c | 55 +- include/linux/fscache-cache.h | 170 +++--- include/linux/wait.h | 24 + kernel/wait.c | 85 +++ 16 files changed, 947 insertions(+), 810 deletions(-)