propagating file change attr on open

This commit is contained in:
Olga Kornievskaia 2012-02-08 11:11:09 -05:00
parent 3def6f5e24
commit ec034e7fd9
3 changed files with 8 additions and 7 deletions

View file

@ -602,6 +602,7 @@ static int handle_open(nfs41_upcall *upcall)
nfs_to_basic_info(&info, &args->basic_info);
nfs_to_standard_info(&info, &args->std_info);
args->mode = info.mode;
args->changeattr = info.change;
if (state->delegation.state)
args->deleg_type = state->delegation.state->state.type;
}

View file

@ -53,7 +53,7 @@ typedef struct __open_upcall_args {
ULONG create_opts;
LONG open_owner_id;
DWORD mode;
LONGLONG changeattr;
ULONGLONG changeattr;
HANDLE srv_open;
DWORD deleg_type;
BOOLEAN created;

View file

@ -173,7 +173,7 @@ typedef struct _updowncall_entry {
ULONG cattrs;
LONG open_owner_id;
DWORD mode;
LONGLONG changeattr;
ULONGLONG changeattr;
HANDLE srv_open;
DWORD deleg_type;
BOOLEAN symlink_embedded;
@ -372,7 +372,7 @@ typedef struct _NFS41_FCB {
FILE_STANDARD_INFORMATION StandardInfo;
BOOLEAN Renamed;
DWORD mode;
LONGLONG changeattr;
ULONGLONG changeattr;
} NFS41_FCB, *PNFS41_FCB;
#define NFS41GetFcbExtension(pFcb) \
(((pFcb) == NULL) ? NULL : (PNFS41_FCB)((pFcb)->Context))
@ -1574,8 +1574,8 @@ NTSTATUS unmarshal_nfs41_open(
*buf += sizeof(HANDLE);
RtlCopyMemory(&cur->u.Open.mode, *buf, sizeof(DWORD));
*buf += sizeof(DWORD);
RtlCopyMemory(&cur->u.Open.changeattr, *buf, sizeof(LONGLONG));
*buf += sizeof(LONGLONG);
RtlCopyMemory(&cur->u.Open.changeattr, *buf, sizeof(ULONGLONG));
*buf += sizeof(ULONGLONG);
RtlCopyMemory(&cur->u.Open.deleg_type, *buf, sizeof(DWORD));
*buf += sizeof(DWORD);
if (cur->errno == ERROR_REPARSE) {
@ -1597,7 +1597,7 @@ NTSTATUS unmarshal_nfs41_open(
cur->u.Open.symlink.MaximumLength);
DbgP("[open] ERROR_REPARSE -> '%wZ'\n", &cur->u.Open.symlink);
}
DbgP("[open] open_state 0x%x mode %o changeattr 0x%x deleg_type %d\n",
DbgP("[open] open_state 0x%x mode %o changeattr 0x%lx deleg_type %d\n",
cur->open_state, cur->u.Open.mode, cur->u.Open.changeattr,
cur->u.Open.deleg_type);
out:
@ -3158,7 +3158,7 @@ BOOLEAN isDataAccess(
}
BOOLEAN has_file_changed(
IN LONGLONG new_changeattr,
IN ULONGLONG new_changeattr,
IN PFILE_BASIC_INFORMATION new_binfo,
IN PNFS41_FCB nfs41_fcb)
{