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>
This commit is contained in:
Jeff Layton 2012-03-23 14:40:55 -04:00
parent da472fc847
commit fe5f5d2e90
3 changed files with 4 additions and 2 deletions

View file

@ -487,6 +487,7 @@ struct cifs_writedata {
struct work_struct work; struct work_struct work;
struct cifsFileInfo *cfile; struct cifsFileInfo *cfile;
__u64 offset; __u64 offset;
pid_t pid;
unsigned int bytes; unsigned int bytes;
int result; int result;
unsigned int nr_pages; unsigned int nr_pages;

View file

@ -2166,8 +2166,8 @@ cifs_async_writev(struct cifs_writedata *wdata)
goto async_writev_out; goto async_writev_out;
} }
smb->hdr.Pid = cpu_to_le16((__u16)wdata->cfile->pid); smb->hdr.Pid = cpu_to_le16((__u16)wdata->pid);
smb->hdr.PidHigh = cpu_to_le16((__u16)(wdata->cfile->pid >> 16)); smb->hdr.PidHigh = cpu_to_le16((__u16)(wdata->pid >> 16));
smb->AndXCommand = 0xFF; /* none */ smb->AndXCommand = 0xFF; /* none */
smb->Fid = wdata->cfile->netfid; smb->Fid = wdata->cfile->netfid;

View file

@ -1802,6 +1802,7 @@ retry:
rc = -EBADF; rc = -EBADF;
break; break;
} }
wdata->pid = wdata->cfile->pid;
rc = cifs_async_writev(wdata); rc = cifs_async_writev(wdata);
} while (wbc->sync_mode == WB_SYNC_ALL && rc == -EAGAIN); } while (wbc->sync_mode == WB_SYNC_ALL && rc == -EAGAIN);