Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[tuomas: rename the patch from 9p-hacks to something slighly more meaningful] Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com>
- Loading branch information
Showing
3 changed files
with
96 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c | ||
--- a/fs/9p/vfs_inode.c | ||
+++ b/fs/9p/vfs_inode.c | ||
@@ -483,6 +483,9 @@ static int v9fs_test_inode(struct inode *inode, void *data) | ||
|
||
if (v9inode->qid.type != st->qid.type) | ||
return 0; | ||
+ | ||
+ if (v9inode->qid.path != st->qid.path) | ||
+ return 0; | ||
return 1; | ||
} | ||
|
||
diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c | ||
--- a/fs/9p/vfs_inode_dotl.c | ||
+++ b/fs/9p/vfs_inode_dotl.c | ||
@@ -87,6 +87,9 @@ static int v9fs_test_inode_dotl(struct inode *inode, void *data) | ||
|
||
if (v9inode->qid.type != st->qid.type) | ||
return 0; | ||
+ | ||
+ if (v9inode->qid.path != st->qid.path) | ||
+ return 0; | ||
return 1; | ||
} | ||
|
||
diff --git a/net/9p/client.c b/net/9p/client.c | ||
index 3ce672af1596..f1c8ad373f90 100644 | ||
--- a/net/9p/client.c | ||
+++ b/net/9p/client.c | ||
@@ -749,8 +749,7 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...) | ||
} | ||
again: | ||
/* Wait for the response */ | ||
- err = wait_event_interruptible(*req->wq, | ||
- req->status >= REQ_STATUS_RCVD); | ||
+ err = wait_event_killable(*req->wq, req->status >= REQ_STATUS_RCVD); | ||
|
||
/* | ||
* Make sure our req is coherent with regard to updates in other | ||
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c | ||
index f24b25c25106..f3a4efcf1456 100644 | ||
--- a/net/9p/trans_virtio.c | ||
+++ b/net/9p/trans_virtio.c | ||
@@ -286,8 +286,8 @@ p9_virtio_request(struct p9_client *client, struct p9_req_t *req) | ||
if (err == -ENOSPC) { | ||
chan->ring_bufs_avail = 0; | ||
spin_unlock_irqrestore(&chan->lock, flags); | ||
- err = wait_event_interruptible(*chan->vc_wq, | ||
- chan->ring_bufs_avail); | ||
+ err = wait_event_killable(*chan->vc_wq, | ||
+ chan->ring_bufs_avail); | ||
if (err == -ERESTARTSYS) | ||
return err; | ||
|
||
@@ -327,7 +327,7 @@ static int p9_get_mapped_pages(struct virtio_chan *chan, | ||
* Other zc request to finish here | ||
*/ | ||
if (atomic_read(&vp_pinned) >= chan->p9_max_pages) { | ||
- err = wait_event_interruptible(vp_wq, | ||
+ err = wait_event_killable(vp_wq, | ||
(atomic_read(&vp_pinned) < chan->p9_max_pages)); | ||
if (err == -ERESTARTSYS) | ||
return err; | ||
@@ -471,8 +471,8 @@ p9_virtio_zc_request(struct p9_client *client, struct p9_req_t *req, | ||
if (err == -ENOSPC) { | ||
chan->ring_bufs_avail = 0; | ||
spin_unlock_irqrestore(&chan->lock, flags); | ||
- err = wait_event_interruptible(*chan->vc_wq, | ||
- chan->ring_bufs_avail); | ||
+ err = wait_event_killable(*chan->vc_wq, | ||
+ chan->ring_bufs_avail); | ||
if (err == -ERESTARTSYS) | ||
goto err_out; | ||
|
||
@@ -489,8 +489,7 @@ p9_virtio_zc_request(struct p9_client *client, struct p9_req_t *req, | ||
virtqueue_kick(chan->vq); | ||
spin_unlock_irqrestore(&chan->lock, flags); | ||
p9_debug(P9_DEBUG_TRANS, "virtio request kicked\n"); | ||
- err = wait_event_interruptible(*req->wq, | ||
- req->status >= REQ_STATUS_RCVD); | ||
+ err = wait_event_killable(*req->wq, req->status >= REQ_STATUS_RCVD); | ||
/* | ||
* Non kernel buffers are pinned, unpin them | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters