summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2008-01-31 16:08:57 +0300
committerAlexander Bokovoy <ab@samba.org>2008-01-31 16:08:57 +0300
commit4259d115478750d7b38cd6c2f20777b27f017e69 (patch)
tree289563bcfe29c2892c1b77aa95292530b7e3c69a /source3/smbd
parent2763b90d242119d25d9f5afa91a403e85425da06 (diff)
parent09454362cf75ecb7db58560604b567611e89d5ef (diff)
downloadsamba-4259d115478750d7b38cd6c2f20777b27f017e69.tar.gz
samba-4259d115478750d7b38cd6c2f20777b27f017e69.tar.bz2
samba-4259d115478750d7b38cd6c2f20777b27f017e69.zip
Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into dmapi-integration
(This used to be commit d46fc35dd4e22ecd777800a8cdb6c31763d0fac4)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/aio.c6
-rw-r--r--source3/smbd/reply.c11
2 files changed, 6 insertions, 11 deletions
diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c
index 9c25f69c97..86fdfe31b7 100644
--- a/source3/smbd/aio.c
+++ b/source3/smbd/aio.c
@@ -202,7 +202,8 @@ bool schedule_aio_read_and_X(connection_struct *conn,
size_t bufsize;
size_t min_aio_read_size = lp_aio_read_size(SNUM(conn));
- if (!min_aio_read_size || (smb_maxcnt < min_aio_read_size)) {
+ if ((!min_aio_read_size || (smb_maxcnt < min_aio_read_size))
+ && !SMB_VFS_AIO_FORCE(fsp)) {
/* Too small a read for aio request. */
DEBUG(10,("schedule_aio_read_and_X: read size (%u) too small "
"for minimum aio_read of %u\n",
@@ -284,7 +285,8 @@ bool schedule_aio_write_and_X(connection_struct *conn,
bool write_through = BITSETW(req->inbuf+smb_vwv7,0);
size_t min_aio_write_size = lp_aio_write_size(SNUM(conn));
- if (!min_aio_write_size || (numtowrite < min_aio_write_size)) {
+ if ((!min_aio_write_size || (numtowrite < min_aio_write_size))
+ && !SMB_VFS_AIO_FORCE(fsp)) {
/* Too small a write for aio request. */
DEBUG(10,("schedule_aio_write_and_X: write size (%u) too "
"small for minimum aio_write of %u\n",
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 4ea81a3819..18376031ec 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -3338,11 +3338,7 @@ void reply_read_and_X(struct smb_request *req)
return;
}
- /* 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 &&
+ if (!big_readX &&
schedule_aio_read_and_X(conn, req, fsp, startpos, smb_maxcnt)) {
END_PROFILE(SMBreadX);
return;
@@ -4012,10 +4008,7 @@ void reply_write_and_X(struct smb_request *req)
nwritten = 0;
} else {
- /* 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) &&
+ if ((req->unread_bytes == 0) &&
schedule_aio_write_and_X(conn, req, fsp, data, startpos,
numtowrite)) {
END_PROFILE(SMBwriteX);