On Wednesday, 25 August 1999 at  1:52:38 +0000, Terry Lambert wrote:
>>> I don't want to express an opinion about the need or otherwise
>>> for mandatory locking, but I would appreciate a teensy
>>> clarification of the problem domain:
>>>
>>> On Mon, Aug 23, 1999 at 05:43:45PM +0930, Greg Lehey wrote:
>>>>   To write a block to a RAID-5 device, you need to:
>>>>
>>>>   1.  Read the old data into a temporary buffer.
>>>>   2.  Read the old parity data corresponding to the data into a
>>>>       temporary buffer.
>>>>   3.  XOR the two, storing the result in one of the temporary buffers.
>>>>   4.  XOR the result with the data which is to be written.
>>>>   5.  Write the data block.
>>>>   6.  Write the parity block.
>>>
>>> Are you suggesting that random user processes have to do all of
>>> this every time that they access a vinum drive?
>>
>> Yes.
>
> This could also be accomplished with a volume access lock at the
> CAM level.

It could be, but it would introduce unnecessary waits.

> I think what people are missing here is that Vinum, when doing
> software RAID, is implementing a type of namespace escape, only
> it isn't a standard namespace escape.

Interesting terminology.  I think you've lost most people already.

> Because this escapes the whole file, it is _not_ like the Vinum
> usage, which needs to escape parity bits on a block device.  The
> Vinum usage needs to prevent access to the file range covered by the
> parity bits, rather than merely protecting the parity bits.

Correct.  I lock a stripe at a time.

> It seems to me that this is a proper application of mandatory
> locks.

Sure.  It also has nothing to do with the userland file locking I was
talking about in the previous thread.

> For the use proposed by Vinum, however, fcntl() based mandatory
> locks are probably not the proper tool.

Vinum isn't proposing fcntl-based locks.  I was looking at them for a
specific application; Vinum has always had its own locking mechanism
(see sys/dev/vinum/vinumlock.c).

> This is because you can only apply locks to devices that have a
> VOP_ADVLOCK on their backing store, and which use the VFSOPS
> based fileops structures.
>
> For the same reason that Linux user lament the inability to
> place advisory range locks on special files in FreeBSD, so, too,
> would Vinum be unable to place mandatory locks through that
> same mechanism against special files in FreeBSD.
>
> To correct this to allow it to work would require hanging the
> locks off of the vnode, instead of hanging them off the backing
> object (I have been suggesting -- and providing patches for --
> this for literally years).

Can you point me to the patches again?

Greg
--
See complete headers for address, home page and phone numbers
finger [EMAIL PROTECTED] for PGP public key


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to