diff options
Diffstat (limited to 'source4/ntvfs/posix/pvfs_read.c')
-rw-r--r-- | source4/ntvfs/posix/pvfs_read.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source4/ntvfs/posix/pvfs_read.c b/source4/ntvfs/posix/pvfs_read.c index e0c7e0b1f2..24142a81ee 100644 --- a/source4/ntvfs/posix/pvfs_read.c +++ b/source4/ntvfs/posix/pvfs_read.c @@ -32,6 +32,7 @@ NTSTATUS pvfs_read(struct ntvfs_module_context *ntvfs, struct pvfs_state *pvfs = ntvfs->private_data; ssize_t ret; struct pvfs_file *f; + NTSTATUS status; if (rd->generic.level != RAW_READ_READX) { return NT_STATUS_NOT_SUPPORTED; @@ -43,6 +44,14 @@ NTSTATUS pvfs_read(struct ntvfs_module_context *ntvfs, return NT_STATUS_INVALID_HANDLE; } + status = pvfs_check_lock(pvfs, f, req->smbpid, + rd->readx.in.offset, + rd->readx.in.maxcnt, + READ_LOCK); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + ret = pread(f->fd, rd->readx.out.data, rd->readx.in.maxcnt, |