linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ming Zhang <blackmagic02881@gmail.com>
To: "John Anthony Kazos Jr." <jakj@j-a-k-j.com>
Cc: Dave Kleikamp <shaggy@linux.vnet.ibm.com>, linux-ext4@vger.kernel.org
Subject: Re: (un)lock_kernel() ?
Date: Tue, 10 Apr 2007 12:03:15 -0400	[thread overview]
Message-ID: <1176220995.3696.24.camel@fs0004.ibrix.com> (raw)
In-Reply-To: <alpine.DEB.0.83.0704041244560.4770@sigma.j-a-k-j.com>

On Wed, 2007-04-04 at 12:52 -0400, John Anthony Kazos Jr. wrote:
> > According to Documentation/filesystems/Locking, ->get_sb() is called
> > with the BKL held, but looking through the code, I'm not able to find
> > where it is being taken.
> 
> I noticed that too. Unless I'm just dumb and can't see it, I'm not able to 
> find any BKL references during filesystem mounting until you get into 
> FS-specific code. I looked through everything from sys_mount through to 
> vfs_kern_mount. Documentation/filesystems/porting talks about several 
> situations where the VFS code was modified to not take the BKL, and BLK 
> calls were added by FS non-maintainers for safety until each FS could be 
> audited independently, but that wouldn't be the case, would it?


sys_mount->do_mount->do_new_mount->do_kern_mount path

part of sys_mount()

1570                 goto out3;
1571 
1572         lock_kernel();
1573         retval = do_mount((char *)dev_page, dir_page, (char *)type_page,
1574                           flags, (void *)data_page);
1575         unlock_kernel();
1576         free_page(data_page);
1577 
1578 out3:
1579         free_page(dev_page)

;
> 
> The ext2 code takes the BKL in three places: ext2_update_inode, 
> write_super, and ext2_compat_ioctl. Starting with ext3, it's in 
> ext3_compat_ioctl and ext3_fill_super, and the same with ext4.
> 
> I suppose the BKL does have to be held, somehow, somewhere, during 
> mounting, or anybody using ext3 on a multiprocessor box would lock their 
> system from unmatched locking calls. Unless the first unlock_kernel() 
> would make the count -1 and the lock would bring it back to zero?
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2007-04-10 16:03 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-04 12:57 (un)lock_kernel() ? John Anthony Kazos Jr.
2007-04-04 15:36 ` Dave Kleikamp
2007-04-04 16:52   ` John Anthony Kazos Jr.
2007-04-10 16:03     ` Ming Zhang [this message]
2007-04-10 16:10       ` Dave Kleikamp
2007-04-10 16:55         ` Ming Zhang

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=1176220995.3696.24.camel@fs0004.ibrix.com \
    --to=blackmagic02881@gmail.com \
    --cc=jakj@j-a-k-j.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=shaggy@linux.vnet.ibm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).