diff options
author | Jeff Layton <jlayton@redhat.com> | 2012-03-23 14:40:55 -0400 |
---|---|---|
committer | Jeff Layton <jlayton@redhat.com> | 2012-03-23 14:40:55 -0400 |
commit | fe5f5d2e908957392aebbb852a6fb22885860d4b (patch) | |
tree | ac9b490eebb50463a14cda8b8bfc654aef78265d /fs/cifs | |
parent | da472fc847e9d8c9da69b09ce0ab975b24f9b894 (diff) |
cifs: add pid field to cifs_writedata
We'll need this to handle rwpidforward option correctly when we use
async writes in the aio_write op.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/cifsproto.h | 1 | ||||
-rw-r--r-- | fs/cifs/cifssmb.c | 4 | ||||
-rw-r--r-- | fs/cifs/file.c | 1 |
3 files changed, 4 insertions, 2 deletions
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h index 95ee5a64e0b0..9e68340c7306 100644 --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h | |||
@@ -487,6 +487,7 @@ struct cifs_writedata { | |||
487 | struct work_struct work; | 487 | struct work_struct work; |
488 | struct cifsFileInfo *cfile; | 488 | struct cifsFileInfo *cfile; |
489 | __u64 offset; | 489 | __u64 offset; |
490 | pid_t pid; | ||
490 | unsigned int bytes; | 491 | unsigned int bytes; |
491 | int result; | 492 | int result; |
492 | unsigned int nr_pages; | 493 | unsigned int nr_pages; |
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 76d8981736e1..61922142cf0d 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c | |||
@@ -2166,8 +2166,8 @@ cifs_async_writev(struct cifs_writedata *wdata) | |||
2166 | goto async_writev_out; | 2166 | goto async_writev_out; |
2167 | } | 2167 | } |
2168 | 2168 | ||
2169 | smb->hdr.Pid = cpu_to_le16((__u16)wdata->cfile->pid); | 2169 | smb->hdr.Pid = cpu_to_le16((__u16)wdata->pid); |
2170 | smb->hdr.PidHigh = cpu_to_le16((__u16)(wdata->cfile->pid >> 16)); | 2170 | smb->hdr.PidHigh = cpu_to_le16((__u16)(wdata->pid >> 16)); |
2171 | 2171 | ||
2172 | smb->AndXCommand = 0xFF; /* none */ | 2172 | smb->AndXCommand = 0xFF; /* none */ |
2173 | smb->Fid = wdata->cfile->netfid; | 2173 | smb->Fid = wdata->cfile->netfid; |
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index 159fcc56dc2d..5fedf6cb5a56 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -1802,6 +1802,7 @@ retry: | |||
1802 | rc = -EBADF; | 1802 | rc = -EBADF; |
1803 | break; | 1803 | break; |
1804 | } | 1804 | } |
1805 | wdata->pid = wdata->cfile->pid; | ||
1805 | rc = cifs_async_writev(wdata); | 1806 | rc = cifs_async_writev(wdata); |
1806 | } while (wbc->sync_mode == WB_SYNC_ALL && rc == -EAGAIN); | 1807 | } while (wbc->sync_mode == WB_SYNC_ALL && rc == -EAGAIN); |
1807 | 1808 | ||