• Arjan van de Ven's avatar
    [PATCH] lockdep: annotate USBFS · 8e7795ef
    Arjan van de Ven authored
    In usbfs's fs_remove_file() function, the aim is to remove a file or
    directory from usbfs. This is done by first taking the i_mutex of the
    parent directory of this file/dir via
      mutex_lock(&parent->d_inode->i_mutex);
    and then to call either usbfs_rmdir() for a directory or usbfs_unlink()
    for a file. Both these functions then take the i_mutex for the
    to-be-removed object themselves:
      mutex_lock(&inode->i_mutex);
    
    This is a classical parent->child locking order relationship that the VFS uses
    all over the place; the VFS locking rule is "you need to take the parent
    first".  This patch annotates the usbfs code to make this explicit and thus
    informs the lockdep code that those two locks indeed have this relationship.
    
    The rules for unlink that we already use in the VFS for unlink are to use
    I_MUTEX_PARENT for the parent directory, and a normal mutex for the file
    itself; this patch follows that convention.
    
    Has no effect on non-lockdep kernels.
    Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: Greg KH <greg@kroah.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    8e7795ef
inode.c 17.1 KB