Matthew Dillon <[EMAIL PROTECTED]> wrote:
> :Tony Finch <[EMAIL PROTECTED]> wrote:
> :
> :Well, in the absence of any comments I hacked around a bit and ended
> :up with the following patch (against 3.3-RC), which permits the same
> :block device to be mounted read-only more than once. The motivation
> :for this is to permit multiple chrooted environments to share the same
> :/usr partition.
>
> Hmm... well, there is a problem here. I believe this will allow
> you to open the underlying block device read-only as well as mount
> the filesystem read-only. This will confuse the buffer cache badly.
I don't think so -- spec_open checks whether the block device has been
mounted in order to prevent this, and I made sure that that check
remains in force except when spec_open is called by ffs_mountfs (by
adding the FMOUNTING flag). I assumed that the buffer cache will
handle multiple read-only mounts because it handles multiple userland
reading file descriptors.
> Also, this may not be the best place to put the code. It make sense
> to be able to mount a block device multiple times in a read-only
> fashion, but the code should be in the open for the block device
> rather then in UFS/FFS, so it can be used with other filesystems
> and for other purposes.
Yes, it's evident that this is true because I had to hack around
essentially the same test in both spec_open and ffs_mountfs; removing
the checks down from ffs_mountfs so it relies on spec_mount to DTRT
would be neater, I think.
Tony.
--
f.a.n.finch [EMAIL PROTECTED] [EMAIL PROTECTED] e pluribus unix
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message