From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Morton Subject: Re: race with i_flock? Date: Tue, 16 Jul 2002 23:32:29 -0700 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <3D350F7D.EE921A03@zip.com.au> References: <3D34D5F4.2060008@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Matthew Wilcox , linux-fsdevel@vger.kernel.org Return-path: To: Dave Hansen List-Id: linux-fsdevel.vger.kernel.org Dave Hansen wrote: > > I've been getting some funny freezes while running Specweb. I don't > think this is the cause, but I did run into it. > > Program received signal SIGSEGV, Segmentation fault. > 0xc0147540 in may_open (nd=0xdaa69f78, acc_mode=6, flag=3) > at /home/dave/oprofile/linux-2.5.25/include/linux/fs.h:1047 > > which is: > static inline int get_lease(struct inode *inode, unsigned int mode) > { > ------->if (inode->i_flock && (inode->i_flock->fl_flags & FL_LEASE)) > return __get_lease(inode, mode); > return 0; > } I get that on about every 1000th reboot (ie: once a week ;)) I have a poke around in kgdb when it happens and everything looks just fine. So what must be happening is that some other CPU has come in and fixed up the pointer before the kgdb stub captured that CPU. I'll grab a trace next time. -