From: Dave Hansen <haveblue@us.ibm.com>
To: Matthew Wilcox <willy@debian.org>
Cc: linux-fsdevel@vger.kernel.org
Subject: race with i_flock?
Date: Tue, 16 Jul 2002 19:27:00 -0700 [thread overview]
Message-ID: <3D34D5F4.2060008@us.ibm.com> (raw)
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;
}
It appears that i_flock is NULL:
(gdb) print inode
$1 = (struct inode *) 0xe8d638f0
(gdb) print *inode
$2 = {...big snip
i_flock = 0x0,
...}
(gdb) print &inode->i_flock
$3 = (struct file_lock **) 0xe8d6396c
But, there was a check for that just a second earlier. Looks racy to
me. I noticed that there is use of i_sem in some of the calling
functions, but not in get_lease()'s call sequence. Is this a problem?
A quick grep for i_flock didn't show any obvious places where it
was set back to NULL.
#0 0xc0147540 in may_open (nd=0xdaa69f78, acc_mode=6, flag=3)
at /home/dave/oprofile/linux-2.5.25/include/linux/fs.h:1047
#1 0xc014786c in open_namei (pathname=0xe7292000
"/mnt/sdc1/www/post.log", flag=3, mode=438,
nd=0xdaa69f78) at namei.c:1294
#2 0xc013bcbb in filp_open (filename=0xe7292000
"/mnt/sdc1/www/post.log", flags=2, mode=438)
at open.c:616
#3 0xc013c0df in sys_open (filename=0x8130cd0
"/mnt/sdc1/www/post.log", flags=2, mode=438)
at open.c:806
#4 0xc0106fbb in syscall_call ()
--
Dave Hansen
haveblue@us.ibm.com
next reply other threads:[~2002-07-17 2:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-17 2:27 Dave Hansen [this message]
2002-07-17 6:32 ` race with i_flock? Andrew Morton
2002-07-17 11:55 ` Matthew Wilcox
2002-07-17 22:31 ` Dave Hansen
2002-07-18 1:07 ` Matthew Wilcox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D34D5F4.2060008@us.ibm.com \
--to=haveblue@us.ibm.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=willy@debian.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.