diff options
author | Jeff Layton <jlayton@redhat.com> | 2011-05-19 16:22:56 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2011-05-25 16:38:33 -0400 |
commit | c28c89fc43e3f81436efc4748837534d4d46f90c (patch) | |
tree | d7eec9d8aabf41d38dcecab0de6f91b6a8a037c6 /fs/cifs/cifsproto.h | |
parent | f7910cbd9fa319ee4501074f1f3b5ce23c4b1518 (diff) |
cifs: add cifs_async_writev
Add the ability for CIFS to do an asynchronous write. The kernel will
set the frame up as it would for a "normal" SMBWrite2 request, and use
cifs_call_async to send it. The mid callback will then be configured to
handle the result.
Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsproto.h')
-rw-r--r-- | fs/cifs/cifsproto.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h index fdc0dc2c083c..8aea8850ffee 100644 --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h | |||
@@ -442,4 +442,22 @@ extern int mdfour(unsigned char *, unsigned char *, int); | |||
442 | extern int E_md4hash(const unsigned char *passwd, unsigned char *p16); | 442 | extern int E_md4hash(const unsigned char *passwd, unsigned char *p16); |
443 | extern int SMBencrypt(unsigned char *passwd, const unsigned char *c8, | 443 | extern int SMBencrypt(unsigned char *passwd, const unsigned char *c8, |
444 | unsigned char *p24); | 444 | unsigned char *p24); |
445 | |||
446 | /* asynchronous write support */ | ||
447 | struct cifs_writedata { | ||
448 | struct kref refcount; | ||
449 | enum writeback_sync_modes sync_mode; | ||
450 | struct work_struct work; | ||
451 | struct cifsFileInfo *cfile; | ||
452 | __u64 offset; | ||
453 | unsigned int bytes; | ||
454 | int result; | ||
455 | unsigned int nr_pages; | ||
456 | struct page *pages[1]; | ||
457 | }; | ||
458 | |||
459 | int cifs_async_writev(struct cifs_writedata *wdata); | ||
460 | struct cifs_writedata *cifs_writedata_alloc(unsigned int nr_pages); | ||
461 | void cifs_writedata_release(struct kref *refcount); | ||
462 | |||
445 | #endif /* _CIFSPROTO_H */ | 463 | #endif /* _CIFSPROTO_H */ |