Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 155922 Details for
Bug 242116
race in aio io_submit write/read
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
[PATCH] dio: call blk_run_address_space() once per op
2-dio-call-blk_run_address_space-once-per-op.patch (text/plain), 2.18 KB, created by
Jeff Moyer
on 2007-06-01 19:26:07 UTC
(
hide
)
Description:
[PATCH] dio: call blk_run_address_space() once per op
Filename:
MIME Type:
Creator:
Jeff Moyer
Created:
2007-06-01 19:26:07 UTC
Size:
2.18 KB
patch
obsolete
>commit 17a7b1d74b1207f8f1af40b5d184989076d08f8b >Author: Zach Brown <zach.brown@oracle.com> >Date: Sun Dec 10 02:20:56 2006 -0800 > > [PATCH] dio: call blk_run_address_space() once per op > > We only need to call blk_run_address_space() once after all the bios for the > direct IO op have been submitted. This removes the chance of calling > blk_run_address_space() after spurious wake ups as the sync path waits for > bios to drain. It's also one less difference betwen the sync and async paths. > > In the process we remove a redundant dio_bio_submit() that its caller had > already performed. > > Signed-off-by: Zach Brown <zach.brown@oracle.com> > Cc: Badari Pulavarty <pbadari@us.ibm.com> > Cc: Suparna Bhattacharya <suparna@in.ibm.com> > Acked-by: Jeff Moyer <jmoyer@redhat.com> > Signed-off-by: Andrew Morton <akpm@osdl.org> > Signed-off-by: Linus Torvalds <torvalds@osdl.org> > >diff --git a/fs/direct-io.c b/fs/direct-io.c >index b57b671..b296942 100644 >--- a/fs/direct-io.c >+++ b/fs/direct-io.c >@@ -404,7 +404,6 @@ static struct bio *dio_await_one(struct > if (dio->bio_list == NULL) { > dio->waiter = current; > spin_unlock_irqrestore(&dio->bio_lock, flags); >- blk_run_address_space(dio->inode->i_mapping); > io_schedule(); > spin_lock_irqsave(&dio->bio_lock, flags); > dio->waiter = NULL; >@@ -450,9 +449,6 @@ static int dio_bio_complete(struct dio * > */ > static void dio_await_completion(struct dio *dio) > { >- if (dio->bio) >- dio_bio_submit(dio); >- > /* > * The bio_lock is not held for the read of bio_count. > * This is ok since it is the dio_bio_complete() that changes >@@ -1085,6 +1081,9 @@ direct_io_worker(int rw, struct kiocb *i > if (dio->bio) > dio_bio_submit(dio); > >+ /* All IO is now issued, send it on its way */ >+ blk_run_address_space(inode->i_mapping); >+ > /* > * It is possible that, we return short IO due to end of file. > * In that case, we need to release all the pages we got hold on. >@@ -1113,7 +1112,6 @@ direct_io_worker(int rw, struct kiocb *i > if (ret == 0) > ret = dio->result; > finished_one_bio(dio); /* This can free the dio */ >- blk_run_address_space(inode->i_mapping); > if (should_wait) { > unsigned long flags; > /*
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 242116
:
155921
| 155922 |
155923
|
155924
|
155925