View | Details | Raw Unified | Return to bug 227214 | Differences between
and this patch

Collapse All | Expand All

(-)fs/nfsserver/nfs_nfsdserv.c (-2 / +4 lines)
Lines 3251-3256 nfsrvd_opendowngrade(struct nfsrv_descri Link Here
3251
	tl += (NFSX_STATEIDOTHER / NFSX_UNSIGNED);
3251
	tl += (NFSX_STATEIDOTHER / NFSX_UNSIGNED);
3252
	stp->ls_seq = fxdr_unsigned(u_int32_t, *tl++);
3252
	stp->ls_seq = fxdr_unsigned(u_int32_t, *tl++);
3253
	i = fxdr_unsigned(int, *tl++);
3253
	i = fxdr_unsigned(int, *tl++);
3254
	if ((nd->nd_flag & ND_NFSV41) != 0)
3255
		i &= ~NFSV4OPEN_WANTDELEGMASK;
3254
	switch (i) {
3256
	switch (i) {
3255
	case NFSV4OPEN_ACCESSREAD:
3257
	case NFSV4OPEN_ACCESSREAD:
3256
		stp->ls_flags = (NFSLCK_READACCESS | NFSLCK_DOWNGRADE);
3258
		stp->ls_flags = (NFSLCK_READACCESS | NFSLCK_DOWNGRADE);
Lines 3263-3269 nfsrvd_opendowngrade(struct nfsrv_descri Link Here
3263
		    NFSLCK_DOWNGRADE);
3265
		    NFSLCK_DOWNGRADE);
3264
		break;
3266
		break;
3265
	default:
3267
	default:
3266
		nd->nd_repstat = NFSERR_BADXDR;
3268
		nd->nd_repstat = NFSERR_INVAL;
3267
	}
3269
	}
3268
	i = fxdr_unsigned(int, *tl);
3270
	i = fxdr_unsigned(int, *tl);
3269
	switch (i) {
3271
	switch (i) {
Lines 3279-3285 nfsrvd_opendowngrade(struct nfsrv_descri Link Here
3279
		stp->ls_flags |= (NFSLCK_READDENY | NFSLCK_WRITEDENY);
3281
		stp->ls_flags |= (NFSLCK_READDENY | NFSLCK_WRITEDENY);
3280
		break;
3282
		break;
3281
	default:
3283
	default:
3282
		nd->nd_repstat = NFSERR_BADXDR;
3284
		nd->nd_repstat = NFSERR_INVAL;
3283
	}
3285
	}
3284
3286
3285
	clientid.lval[0] = stp->ls_stateid.other[0];
3287
	clientid.lval[0] = stp->ls_stateid.other[0];

Return to bug 227214