Re: Trace Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 15, 2014 at 1:53 PM, Nick Krause <xerofoify@xxxxxxxxx> wrote:
> I am just going to be blunt and assume that my trace is wrong.
> I am tracing the bug , https://bugzilla.kernel.org/show_bug.cgi?id=72291.
> Here are my trace steps
> 1.Start in _break_lease and find locks_insert_block and trace into that function
> 2. In that function we hit the internal function, _locks_insert_block and I
> trace into that function
> 3. When I trace into that function , I get see we are using the same spinlocks
> as the other functions and come to the conclusion we are not holding the
> right spinlock and are looping indefinitely
> 4. This comment , /* Must be called with i_lock held. */ seems to a
> value thing to check if we
> are holding the i_lock spinlock
> 5.I trace back to where we are calling in the function, _break_lease
> and we are calling like this,
> locks_insert_block(flock, new_fl);
> I known that flock is the lock that we are calling with and logically
> needs the i_lock
> 6. flock = inode->i_flock; is clearly not the right lock and we are
> already holding it in another
> spinlock as part of this function , spin_lock(&inode->i_lock);
> This means that we are looping forever trying to get the i_lock that
> is already held by another spinlock,
> causing us to loop forever when we call _break_lease.
> Nick
Typo we internally call locks_insert_block

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux