On Wed, Feb 07 2018, Joel Fernandes wrote: > Hi Peter, > > On Wed, Feb 7, 2018 at 8:58 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > [...] >> >>> Lockdep reports this issue when GFP_FS is infact set, and we enter >>> this path and acquire the lock. So lockdep seems to be doing the right >>> thing however by design it is reporting a false-positive. >> >> So I'm not seeing how its a false positive. fs/inode.c sets a different >> lock class per filesystem type. So recursing on an i_mutex within a >> filesystem does sound dodgy. > > But directory inodes and file inodes in the same filesystem share the > same lock class right? Not since v2.6.24 Commit: 14358e6ddaed ("lockdep: annotate dir vs file i_mutex") You were using 4.9.60. so they should be separate.... Maybe shmem_get_inode() needs to call unlock_new_inode() or just lockdep_annotate_inode_mutex_key() after inode_init_owner(). Maybe inode_init_owner() should call lockdep_annotate_inode_mutex_key() directly. NeilBrown
Attachment:
signature.asc
Description: PGP signature