diff options
author | Simo Sorce <idra@samba.org> | 2008-01-16 12:06:34 -0500 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2008-01-16 12:06:34 -0500 |
commit | 04b2a9e80a8c35e37faf2e0a8e54efb9a084f2e3 (patch) | |
tree | 9cb49347eab028a5f65a4f2aa4c61de42cff08fd /source3/smbd/reply.c | |
parent | 94fdd59f1c2a41b8e737aa8ca8939e9bf2b59a77 (diff) | |
parent | 8c41366a98ea96224adc2c108b940075431944fd (diff) | |
download | samba-04b2a9e80a8c35e37faf2e0a8e54efb9a084f2e3.tar.gz samba-04b2a9e80a8c35e37faf2e0a8e54efb9a084f2e3.tar.bz2 samba-04b2a9e80a8c35e37faf2e0a8e54efb9a084f2e3.zip |
Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-simo
(This used to be commit 05c22a55a4c052c682a2f2afdb0696504195d18c)
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r-- | source3/smbd/reply.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index e2316ef120..381ddfe151 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -3329,8 +3329,12 @@ void reply_read_and_X(struct smb_request *req) return; } - if (!big_readX - && schedule_aio_read_and_X(conn, req, fsp, startpos, smb_maxcnt)) { + /* It is possible for VFS modules to selectively decide whether Async I/O should be used + for the file or not. + */ + if ((SMB_VFS_AIO_FORCE(fsp)) && + !big_readX && + schedule_aio_read_and_X(conn, req, fsp, startpos, smb_maxcnt)) { END_PROFILE(SMBreadX); return; } @@ -4001,13 +4005,16 @@ void reply_write_and_X(struct smb_request *req) nwritten = 0; } else { - if (req->unread_bytes == 0 && - schedule_aio_write_and_X(conn, req, fsp, data, - startpos, numtowrite)) { + /* It is possible for VFS modules to selectively decide whether Async I/O + should be used for the file or not. + */ + if ((SMB_VFS_AIO_FORCE(fsp)) && (req->unread_bytes == 0) && + schedule_aio_write_and_X(conn, req, fsp, data, startpos, + numtowrite)) { END_PROFILE(SMBwriteX); return; } - + nwritten = write_file(req,fsp,data,startpos,numtowrite); } |