There is a race when open sg with O_EXCL flag. Also a race may happen between
sg_open and sg_remove.
Changes from v3:
* release o_sem in sg_release(), not in sg_remove_sfp().
* not set exclude with sfd_lock held.
Vaughan Cao (4):
[SCSI] sg: use rwsem to solve race during exclusive open
Open exclusive check is protected by o_sem, no need sg_open_exclusive_lock.
@exclude is used to record which type of rwsem we are holding.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29 deletions(-)
diff --git a
@detached is set under the protection of sg_index_lock. Without getting the
lock, new sfp will be added during sg removal and there is no chance for it
to be picked out. So check with sg_index_lock held in sg_add_sfp().
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 26
Push file descriptor list locking down to per-device locking. Let sg_index_lock
only protect device lookup.
sdp->detached is also set and checked with this lock held.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 61 ++-
1 file chan
w use rwsem to protect this process. Exclusive open gets write lock and
others get read lock. The lock will be held until file descriptor is closed.
This also leads 'exclude' only a status rather than a check mark.
Signed-off-by: Vaughan Cao
---
drivers
sg_add_sfp
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 671b760..f0e4785 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -295,21 +295,17 @@ sg_open
in cherrry-pick.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 61 ++-
1 file changed, 33 insertions(+), 28 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index f0e4785..3431d12 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/s
(), not in sg_remove_sfp().
* not set exclude with sfd_lock held.
Vaughan Cao (4):
[SCSI] sg: use rwsem to solve race during exclusive open
[SCSI] sg: no need sg_open_exclusive_lock
[SCSI] sg: checking sdp->detached isn't protected when open
[SCSI] sg: push file descriptor list locking
in cherrry-pick.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 61 ++-
1 file changed, 33 insertions(+), 28 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index f0e4785..3431d12 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/s
sg_add_sfp
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 671b760..f0e4785 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -295,21 +295,17 @@ sg_open
w use rwsem to protect this process. Exclusive open gets write lock and
others get read lock. The lock will be held until file descriptor is closed.
This also leads 'exclude' only a status rather than a check mark.
Signed-off-by: Vaughan Cao
---
drivers
Open exclusive check is protected by o_sem, no need sg_open_exclusive_lock.
@exclude is used to record which type of rwsem we are holding.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29 deletions(-)
diff --git a
with sg_add_sfp.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 83 +--
1 file changed, 44 insertions(+), 39 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index df5e961..7a54c92 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/
Open exclusive check is protected by o_sem, no need sg_open_exclusive_lock.
@exclude is used to record which type of rwsem we are holding.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29 deletions(-)
diff --git a
in cherrry-pick.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 62 ++-
1 file changed, 34 insertions(+), 28 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 6bffe52..10d6943 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/s
series instead of adding another parameter in sg_add_sfp
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 20 ++--
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index dcbd95f..6bffe52 100644
--- a/drivers/scsi/sg.c
+++ b
().
* not set exclude with sfd_lock held.
Vaughan Cao (4):
sg: use rwsem to solve race during exclusive open
sg: no need sg_open_exclusive_lock
sg: checking sdp->detached isn't protected when open
sg: push file descriptor list locking down to per-device locking
drivers/scsi/sg
.
Changes from v4:
* use ERR_PTR series instead of adding another parameter in sg_add_sfp
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 17 +
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index d4af132..64df1ab 100644
--- a
in cherrry-pick.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 62 ++-
1 file changed, 34 insertions(+), 28 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 64df1ab..5cbc4bb 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/s
ariables
* fix insane code dealing with sg_add_sfp.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 79 +--
1 file changed, 41 insertions(+), 38 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index df5e961..4efa9b5 100644
---
from v3:
* release o_sem in sg_release(), not in sg_remove_sfp().
* not set exclude with sfd_lock held.
Vaughan Cao (4):
sg: use rwsem to solve race during exclusive open
sg: no need sg_open_exclusive_lock
sg: checking sdp->detached isn't protected when open
sg: push file descrip
Open exclusive check is protected by o_sem, no need sg_open_exclusive_lock.
@exclude is used to record which type of rwsem we are holding.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29 deletions(-)
diff --git a
Hi James,
[1.] One line summary of the problem:
special sense code asc,ascq=04h,0Ch abort scsi scan in the middle
[2.] Full description of the problem/report:
For instance, storage represents 8 iscsi LUNs, however the LUN No.7 is
not well configured or has something wrong.
Then messages receiv
On 2013年10月14日 21:18, Hannes Reinecke wrote:
On 10/14/2013 02:51 PM, Steffen Maier wrote:
Hi Hannes,
On 10/14/2013 01:13 PM, Hannes Reinecke wrote:
On 10/13/2013 07:23 PM, Vaughan Cao wrote:
Hi James,
[1.] One line summary of the problem:
special sense code asc,ascq=04h,0Ch abort scsi scan
On 2013年10月15日 13:51, Hannes Reinecke wrote:
But that notwithstanding, did you get a chance to test my patch?
Cheers,
Hannes
Hi Hannes,
Kernel patched and waiting feedback from lab guy.
Thanks,
Vaughan
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a
On 2013年10月21日 07:00, Douglas Gilbert wrote:
On 13-10-20 01:31 PM, Bart Van Assche wrote:
On 10/20/13 18:09, Douglas Gilbert wrote:
Given that lk 3.12.0 release is not far away, the safest path
may still be to revert Vaughan Cao's patch. I'll leave that
decision to the maintainers.
Hello Dou
On 2013年11月03日 02:22, Douglas Gilbert wrote:
On 13-11-01 01:16 AM, vaughan wrote:
I do not follow the last point but that is not important.
For reasons that I listed in a private post I think
that my patch presented in this thread is closer to
our goals than your patch (2013/6/17/319). Timing
'connectionX:X: detected conn error(1020)' message appear during normal
logout phase because of connection close on target peer.
Quiesce it to avoid confusion.
Signed-off-by: Vaughan Cao
---
drivers/scsi/libiscsi.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/dr
PG.
Signed-off-by: Vaughan Cao
---
drivers/scsi/device_handler/scsi_dh_alua.c | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c
b/drivers/scsi/device_handler/scsi_dh_alua.c
index 68adb89..d79e57dd 100644
--- a/drivers/scsi/device_hand
ce it by checking session state and err
value accordingly.
Signed-off-by: Vaughan Cao
---
drivers/scsi/libiscsi.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 415f2c0..84171ef 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers
On 2013年10月21日 14:07, vaughan wrote:
On 10/16/2013 02:52 PM, Hannes Reinecke wrote:
But seeing that this approach raises quite some issues I've attached a
different patch. Vaughan, could you test with that, too? Should be
functionally equivalent to the previous one. Cheers, Hannes
Hi Hannes,
This patch makes reject messages show right value for opcode and itt, which
is converse previously.
Signed-off-by: Vaughan Cao
---
drivers/scsi/libiscsi.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index e399561
On 2014年01月11日 04:24, Mike Christie wrote:
On 01/10/2014 02:09 AM, vaughan wrote:
On 01/10/2014 03:41 PM, Mike Christie wrote:
On 1/10/14 12:11 AM, vaughan wrote:
I haven't figure out why it's rejected with "bookmark invalid"(9)
reason, rather than "command not supported". IMO "bookmark inval
On Fri, Dec 20, 2013 at 8:13 PM, Hannes Reinecke wrote:
>
> +static void alua_rtpg_work(struct work_struct *work)
> +{
> ..
> + if (pg->flags & ALUA_PG_RUN_STPG) {
> + spin_unlock_irqrestore(&pg->rtpg_lock, flags);
> + err = alua_stpg(sdev, pg);
> +
ted.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sd.c | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 6146b9d..366e48b 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -144,6 +144,7 @@ sd_store_cache_type(struct device *dev, str
On 05/28/2014 12:18 AM, James Bottomley wrote:
> On Tue, 2014-05-27 at 19:39 +0800, Vaughan Cao wrote:
>> This is a fix for commit:
>> 39c60a0948cc06139e2fbfe084f83cb7e7deae3b sd: fix array cache flushing bug
>> causing performance problems
>> We must notify the blo
ted.
This patch factors out a helper that can be called from sd_revalidate_disk and
cache_type_store.
Signed-off-by: Vaughan Cao
---
drivers/scsi/sd.c | 23 +++
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index efcb
37 matches
Mail list logo