Re: [PATCH] Allow EA reservation holders to read from device.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2015-01-06 at 19:08 -0800, Lee Duncan wrote:
> On 01/06/2015 01:23 PM, Nicholas A. Bellinger wrote:
> > On Mon, 2015-01-05 at 10:49 -0800, Lee Duncan wrote:
> >> From: Lee Duncan <lduncan@xxxxxxxx>
> >>
> >> For PGR reservation type Exclusive Access, allow all
> >> registrants to read from the device.
> >>
> >> Signed-off-by: Lee Duncan <lduncan@xxxxxxxx>
> >> Cc: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> >> ---
> >>  drivers/target/target_core_pr.c | 12 ++++++++++++
> >>  1 file changed, 12 insertions(+)
> >>
> >> diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
> >> index 85564998500a..cb762b174c08 100644
> >> --- a/drivers/target/target_core_pr.c
> >> +++ b/drivers/target/target_core_pr.c
> >> @@ -551,6 +551,18 @@ static int core_scsi3_pr_seq_non_holder(
> >>
> >>                         return 0;
> >>                 }
> >> +       } else if (we && registered_nexus) {
> >> +               /*
> >> +                * Reads are allowed for Write Exclusive locks
> >> +                * from all registrants.
> >> +                */
> >> +               if (cmd->data_direction == DMA_FROM_DEVICE) {
> >> +                       pr_debug("Allowing READ CDB: 0x%02x for %s"
> >> +                               " reservation\n", cdb[0],
> >> +                               core_scsi3_pr_dump_type(pr_reg_type));
> >> +
> >> +                       return 0;
> >> +               }
> >>         }
> >>         pr_debug("%s Conflict for %sregistered nexus %s CDB: 0x%2x"
> >>                 " for %s reservation\n", transport_dump_cmd_direction(cmd),
> > 
> > I'm confused as to why this is necessary..
> > 
> > Doesn't the conditional check directly above this one ensure that
> > all_reg=true && registered_nexus=true implicitly allow READ CDBs to be
> > processed..?
> 
> No, the section right above it handles "All Registrants" or "Registrants
> Only" reservations, but not "normal" reservations.
> 
> In other words, if using "sg_persist" to create the registration, the
> problem occurs for type 1, i.e. regular old "write exclusive".
> 
> And the section above it is allowing reads and writes, and we only want
> to allow READs for the non-reservation holders in this case.
> > 
> > How is this new check for PR_TYPE_WRITE_EXCLUSIVE_ALLREG reservation any
> > different..?
> 
> Er, I believe they are totally different. That patch was about allowing
> re-registration. This one is about allowing non-reservation-holding
> registrants to read from the device when the reservation is of type
> Write Exclusive. Can we agree that this should be allowed?
> 

Ah, I was getting confused by the 'all registrants' part of the commit
message.

Applying to target-pending/master now with a more explicit commit
message.

Thanks Lee!

--nab

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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux