[stgt] RFC [PATCH] Implement PERSISTENT RESERVE IN/OUT

Arne Redlich agr at powerkom-dd.de
Sat Aug 23 15:08:28 CEST 2008


Am Freitag, den 22.08.2008, 09:29 +1000 schrieb Mark Harvey:

> My current line of thinking is:
> - storing a 'bit mask' for each initiator (containing registrant only,
> exclusive.... that this initiator has registered / is permitted).
> which is tagged by PRgeneration value.
> - Each lu contains a mask of of permitted actions (e.g. ssc would most
> likely not allow shared access, while sbc devices may allow shared
> read access).
> - On each SCSI cmd:
>    Test PRgeneration is not latter then lu's PRgeneration recorded
> value. If PRgeneration is later, walk thru initiator list and
> re-calculate bit mask & update lu's PRgeneration.
>    Compare two masks and allow/reject SCSI cmd on outcome.
> 
> 
> Really, really rough pseudo code which is not even thought thru yet...
> 
> (Incremented by RESERVATION-OUT)
> pr->PRgeneration
> 
> struct pr_nexus {
>      i_t_nexus; (vague hand-waving pointing to some unknown way to
> identify i_t_nexus)
>      pr_generation; (Value of PRgeneration at time this struct was updated)
>      uint mask; (permission mask allowed by this i_t_nexus)
> } pr_nexus;

I'm afraid I still don't fully understand: where do you maintain this
pr_nexus, at the LU? Then you'd need an efficient way to look up the
pr_nexus and we've come full circle to my initial comment. Or am I
missing something?

Cheers,
Arne


--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list