If freeze fails, vss_operate will re-enter itself to thaw. But it forgets
to call endmntent() before it recalls setmntent() again.
Signed-off-by: Vaughan Cao
---
tools/hv/hv_vss_daemon.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/tools/hv/hv_vss_daemon.c b
If freeze fails, vss_operate will re-enter itself to thaw. But it forgets
to call endmntent() before it recalls setmntent() again.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
tools/hv/hv_vss_daemon.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/tools
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
.
This patch factors out a helper that can be called from sd_revalidate_disk and
cache_type_store.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
drivers/scsi/sd.c | 23 +++
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi
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.
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
.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
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 block layer via q-flush_flags after
amd_iommu_rlookup_table[devid] != NULL is already guaranteed by check_device
called before, it's fine to attach device at this point.
Signed-off-by: Vaughan Cao
---
drivers/iommu/amd_iommu.c | 6 --
1 file changed, 6 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu
amd_iommu_rlookup_table[devid] != NULL is already guaranteed by check_device
called before, it's fine to attach device at this point.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
drivers/iommu/amd_iommu.c | 6 --
1 file changed, 6 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c
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
This patch makes reject messages show right value for opcode and itt, which
is converse previously.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
drivers/scsi/libiscsi.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi
On 2013年12月18日 20:25, Tejun Heo wrote:
Hello,
On Wed, Dec 18, 2013 at 11:15:23AM +0800, Vaughan Cao wrote:
I suppose there is a fault in the patch of https://lkml.org/lkml/2013/1/16/546.
I know you made a new patch for latest kernel which don't move the entry
between pending and running list
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,
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,
On 2013年12月18日 20:25, Tejun Heo wrote:
Hello,
On Wed, Dec 18, 2013 at 11:15:23AM +0800, Vaughan Cao wrote:
I suppose there is a fault in the patch of https://lkml.org/lkml/2013/1/16/546.
I know you made a new patch for latest kernel which don't move the entry
between pending and running list
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/scsi
to find a larger cookie and insert itself before that node, it won't result in
a sorted list in any direction...
I don't know if my understanding about the async mechanism is right, so here
to have a check with you. Thanks.
Signed-off-by: Vaughan Cao
---
kernel/async.c | 4 ++--
1 file changed, 2
to find a larger cookie and insert itself before that node, it won't result in
a sorted list in any direction...
I don't know if my understanding about the async mechanism is right, so here
to have a check with you. Thanks.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
kernel/async.c | 4
it by checking session state and err
value accordingly.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
ce degradation. Ideally, one would want the host to perform
restrained retries during this transitioning period in all relevant code paths
including the alua_rtpg routine.
Restrain retries in the same way already implemented when state =
TPGS_STATE_TRANSITIONING is returned by extended RTPG.
Signed-off-b
. Ideally, one would want the host to perform
restrained retries during this transitioning period in all relevant code paths
including the alua_rtpg routine.
Restrain retries in the same way already implemented when state =
TPGS_STATE_TRANSITIONING is returned by extended RTPG.
Signed-off-by: Vaughan
'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/drivers/scsi
'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 vaughan@oracle.com
---
drivers/scsi/libiscsi.c | 6 ++
1 file changed, 6 insertions(+)
diff --git
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).
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).
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
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
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-kernel" in
the body
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-kernel in
the body of
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月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
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
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
register_blkdev(0, NULL) can result kernel Oops by copying from NULL
in strlcpy(). Fix it by checking NULL pointer at the beginning and
WARN when encountered in unregister_blkdev.
Signed-off-by: Vaughan Cao
---
block/genhd.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git
register_blkdev(0, NULL) can result kernel Oops by copying from NULL
in strlcpy(). Fix it by checking NULL pointer at the beginning.
Signed-off-by: Vaughan Cao
---
block/genhd.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block/genhd.c b/block/genhd.c
index dadf42b..9564f19 100644
register_blkdev(0, NULL) can result kernel Oops by copying from NULL
in strlcpy(). Fix it by checking NULL pointer at the beginning.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
block/genhd.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block/genhd.c b/block/genhd.c
index
register_blkdev(0, NULL) can result kernel Oops by copying from NULL
in strlcpy(). Fix it by checking NULL pointer at the beginning and
WARN when encountered in unregister_blkdev.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
block/genhd.c | 5 -
1 file changed, 4 insertions(+), 1
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
--- a/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
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 descriptor l
ict 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
.
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
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
.
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/sg.c
@@ -170,11
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
ict 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
().
* 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.c |
().
* 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.c | 173
-pick.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29
.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
series instead of adding another parameter in sg_add_sfp
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
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 descriptor list
-pick.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
.
Changes from v4:
* use ERR_PTR series instead of adding another parameter in sg_add_sfp
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29
insane code dealing with sg_add_sfp.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
- SHUTDOWN_crash.
xen_panic_handler_init() is defined to register on panic_notifier_list but
we only call it in xen_arch_setup which only be called by pvm, this patch is
necessary for pvhvm.
Signed-off-by: Vaughan Cao
---
arch/x86/xen/enlighten.c | 2 ++
1 file changed, 2 insertions(+)
diff
code - SHUTDOWN_crash.
xen_panic_handler_init() is defined to register on panic_notifier_list but
we only call it in xen_arch_setup which only be called by pvm, this patch is
necessary for pvhvm.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
arch/x86/xen/enlighten.c | 2 ++
1 file changed
(), 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 d
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/scsi/sg.c | 77
in 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
ict 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
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
ict 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
in 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 sg_add_sfp
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
-pick.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29
-pick.
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 77
in sg_add_sfp
Signed-off-by: Vaughan Cao vaughan@oracle.com
---
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
(), 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 down
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/scsi/sg.c | 77
@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
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
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
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 34 +-
1 file changed, 5 insertions(+), 29
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 61
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 vaughan@oracle.com
---
drivers/scsi/sg.c | 77
@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 vaughan@oracle.com
---
drivers/scsi/sg.c | 26
84 matches
Mail list logo