respect NO_INTERMIDIATE_BUFFERING for an open
This commit is contained in:
parent
735784e85b
commit
fae194a5b6
1 changed files with 4 additions and 2 deletions
|
|
@ -418,6 +418,7 @@ typedef struct _NFS41_FOBX {
|
||||||
LARGE_INTEGER time;
|
LARGE_INTEGER time;
|
||||||
DWORD deleg_type;
|
DWORD deleg_type;
|
||||||
BOOLEAN write_thru;
|
BOOLEAN write_thru;
|
||||||
|
BOOLEAN nocache;
|
||||||
} NFS41_FOBX, *PNFS41_FOBX;
|
} NFS41_FOBX, *PNFS41_FOBX;
|
||||||
#define NFS41GetFobxExtension(pFobx) \
|
#define NFS41GetFobxExtension(pFobx) \
|
||||||
(((pFobx) == NULL) ? NULL : (PNFS41_FOBX)((pFobx)->Context))
|
(((pFobx) == NULL) ? NULL : (PNFS41_FOBX)((pFobx)->Context))
|
||||||
|
|
@ -3629,6 +3630,7 @@ NTSTATUS nfs41_Create(
|
||||||
DbgP("nfs41_Create: disabling buffering\n");
|
DbgP("nfs41_Create: disabling buffering\n");
|
||||||
#endif
|
#endif
|
||||||
SrvOpen->BufferingFlags = FCB_STATE_DISABLE_LOCAL_BUFFERING;
|
SrvOpen->BufferingFlags = FCB_STATE_DISABLE_LOCAL_BUFFERING;
|
||||||
|
nfs41_fobx->nocache = TRUE;
|
||||||
} else if (!entry->u.Open.deleg_type && !Fcb->OpenCount) {
|
} else if (!entry->u.Open.deleg_type && !Fcb->OpenCount) {
|
||||||
nfs41_fcb_list_entry *oentry;
|
nfs41_fcb_list_entry *oentry;
|
||||||
#ifdef DEBUG_OPEN
|
#ifdef DEBUG_OPEN
|
||||||
|
|
@ -5344,7 +5346,7 @@ NTSTATUS nfs41_Read(
|
||||||
if ((!BooleanFlagOn(LowIoContext->ParamsFor.ReadWrite.Flags,
|
if ((!BooleanFlagOn(LowIoContext->ParamsFor.ReadWrite.Flags,
|
||||||
LOWIO_READWRITEFLAG_PAGING_IO) &&
|
LOWIO_READWRITEFLAG_PAGING_IO) &&
|
||||||
(SrvOpen->DesiredAccess & FILE_READ_DATA) &&
|
(SrvOpen->DesiredAccess & FILE_READ_DATA) &&
|
||||||
!pVNetRootContext->nocache &&
|
!pVNetRootContext->nocache && !nfs41_fobx->nocache &&
|
||||||
!(SrvOpen->BufferingFlags &
|
!(SrvOpen->BufferingFlags &
|
||||||
(FCB_STATE_READBUFFERING_ENABLED |
|
(FCB_STATE_READBUFFERING_ENABLED |
|
||||||
FCB_STATE_READCACHING_ENABLED)))) {
|
FCB_STATE_READCACHING_ENABLED)))) {
|
||||||
|
|
@ -5451,7 +5453,7 @@ NTSTATUS nfs41_Write(
|
||||||
(SrvOpen->DesiredAccess & (FILE_WRITE_DATA | FILE_APPEND_DATA)) &&
|
(SrvOpen->DesiredAccess & (FILE_WRITE_DATA | FILE_APPEND_DATA)) &&
|
||||||
!pVNetRootContext->write_thru &&
|
!pVNetRootContext->write_thru &&
|
||||||
!pVNetRootContext->nocache &&
|
!pVNetRootContext->nocache &&
|
||||||
!nfs41_fobx->write_thru &&
|
!nfs41_fobx->write_thru && !nfs41_fobx->nocache &&
|
||||||
!(SrvOpen->BufferingFlags &
|
!(SrvOpen->BufferingFlags &
|
||||||
(FCB_STATE_WRITEBUFFERING_ENABLED |
|
(FCB_STATE_WRITEBUFFERING_ENABLED |
|
||||||
FCB_STATE_WRITECACHING_ENABLED))) {
|
FCB_STATE_WRITECACHING_ENABLED))) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue