Commit 4108e101 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull nfsd fixes from Chuck Lever:
 "Miscellaneous NFSD fixes for v5.12-rc"

* tag 'nfsd-5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
  svcrdma: Revert "svcrdma: Reduce Receive doorbell rate"
  NFSD: fix error handling in NFSv4.0 callbacks
  NFSD: fix dest to src mount in inter-server COPY
  Revert "nfsd4: a client's own opens needn't prevent delegations"
  Revert "nfsd4: remove check_conflicting_opens warning"
  rpc: fix NULL dereference on kmalloc failure
  sunrpc: fix refcount leak for rpc auth modules
  NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
  nfsd: don't abort copies early
  fs: nfsd: fix kconfig dependency warning for NFSD_V4
  svcrdma: disable timeouts on rdma backchannel
  nfsd: Don't keep looking up unhashed files in the nfsd file cache
parents 1a4431a5 bade4be6
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1808,9 +1808,6 @@ check_conflicting_open(struct file *filp, const long arg, int flags)

	if (flags & FL_LAYOUT)
		return 0;
	if (flags & FL_DELEG)
		/* We leave these checks to the caller. */
		return 0;

	if (arg == F_RDLCK)
		return inode_is_open_for_write(inode) ? -EAGAIN : 0;
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ config NFSD_V4
	select NFSD_V3
	select FS_POSIX_ACL
	select SUNRPC_GSS
	select CRYPTO
	select CRYPTO_MD5
	select CRYPTO_SHA256
	select GRACE_PERIOD
+2 −0
Original line number Diff line number Diff line
@@ -898,6 +898,8 @@ nfsd_file_find_locked(struct inode *inode, unsigned int may_flags,
			continue;
		if (!nfsd_match_cred(nf->nf_cred, current_cred()))
			continue;
		if (!test_bit(NFSD_FILE_HASHED, &nf->nf_flags))
			continue;
		if (nfsd_file_get(nf) != NULL)
			return nf;
	}
+1 −0
Original line number Diff line number Diff line
@@ -1189,6 +1189,7 @@ static void nfsd4_cb_done(struct rpc_task *task, void *calldata)
		switch (task->tk_status) {
		case -EIO:
		case -ETIMEDOUT:
		case -EACCES:
			nfsd4_mark_cb_down(clp, task->tk_status);
		}
		break;
+1 −1
Original line number Diff line number Diff line
@@ -1302,7 +1302,7 @@ nfsd4_cleanup_inter_ssc(struct vfsmount *ss_mnt, struct nfsd_file *src,
			struct nfsd_file *dst)
{
	nfs42_ssc_close(src->nf_file);
	/* 'src' is freed by nfsd4_do_async_copy */
	fput(src->nf_file);
	nfsd_file_put(dst);
	mntput(ss_mnt);
}
Loading