[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