Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91e59c36 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFS: Don't wait for congestion in nfs_update_request()



It is redundant, and will interfere with the call to
balance_dirty_pages_ratelimited_nr in generic_file_write().

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 1a0ba9ae
Loading
Loading
Loading
Loading
+0 −30
Original line number Diff line number Diff line
@@ -594,34 +594,6 @@ static inline int nfs_scan_commit(struct inode *inode, struct list_head *dst, un
}
#endif

static int nfs_wait_on_write_congestion(struct address_space *mapping)
{
	struct inode *inode = mapping->host;
	struct backing_dev_info *bdi = mapping->backing_dev_info;
	int ret = 0;

	might_sleep();

	if (!bdi_write_congested(bdi))
		return 0;

	nfs_inc_stats(inode, NFSIOS_CONGESTIONWAIT);

	do {
		struct rpc_clnt *clnt = NFS_CLIENT(inode);
		sigset_t oldset;

		rpc_clnt_sigmask(clnt, &oldset);
		ret = congestion_wait_interruptible(WRITE, HZ/10);
		rpc_clnt_sigunmask(clnt, &oldset);
		if (ret == -ERESTARTSYS)
			break;
		ret = 0;
	} while (bdi_write_congested(bdi));

	return ret;
}

/*
 * Try to update any existing write request, or create one if there is none.
 * In order to match, the request's credentials must match those of
@@ -640,8 +612,6 @@ static struct nfs_page * nfs_update_request(struct nfs_open_context* ctx,

	end = offset + bytes;

	if (nfs_wait_on_write_congestion(mapping))
		return ERR_PTR(-ERESTARTSYS);
	for (;;) {
		/* Loop over all inode entries and see if we find
		 * A request for the page we wish to update