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

Commit 03df25dc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
  NFS: add missing spkm3 strings to mount option parser
  NFS: remove error field from nfs_readdir_descriptor_t
  NFS: missing spaces in KERN_WARNING
  NFS: Allow text-based mounts via compat_sys_mount
  NFS: fix reference counting for NFSv4 callback thread
parents f6866fec 52833e89
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -702,9 +702,6 @@ static int do_nfs4_super_data_conv(void *raw_data)
		real->flags = raw->flags;
		real->version = raw->version;
	}
	else {
		return -EINVAL;
	}

	return 0;
}
+12 −6
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ static void nfs_callback_svc(struct svc_rqst *rqstp)
 */
int nfs_callback_up(void)
{
	struct svc_serv *serv;
	struct svc_serv *serv = NULL;
	int ret = 0;

	lock_kernel();
@@ -122,24 +122,30 @@ int nfs_callback_up(void)
	ret = svc_create_xprt(serv, "tcp", nfs_callback_set_tcpport,
			      SVC_SOCK_ANONYMOUS);
	if (ret <= 0)
		goto out_destroy;
		goto out_err;
	nfs_callback_tcpport = ret;
	dprintk("Callback port = 0x%x\n", nfs_callback_tcpport);

	ret = svc_create_thread(nfs_callback_svc, serv);
	if (ret < 0)
		goto out_destroy;
		goto out_err;
	nfs_callback_info.serv = serv;
	wait_for_completion(&nfs_callback_info.started);
out:
	/*
	 * svc_create creates the svc_serv with sv_nrthreads == 1, and then
	 * svc_create_thread increments that. So we need to call svc_destroy
	 * on both success and failure so that the refcount is 1 when the
	 * thread exits.
	 */
	if (serv)
		svc_destroy(serv);
	mutex_unlock(&nfs_callback_mutex);
	unlock_kernel();
	return ret;
out_destroy:
out_err:
	dprintk("Couldn't create callback socket or server thread; err = %d\n",
		ret);
	svc_destroy(serv);
out_err:
	nfs_callback_info.users--;
	goto out;
}
+3 −5
Original line number Diff line number Diff line
@@ -154,7 +154,6 @@ typedef struct {
	struct nfs_entry *entry;
	decode_dirent_t	decode;
	int		plus;
	int		error;
	unsigned long	timestamp;
	int		timestamp_valid;
} nfs_readdir_descriptor_t;
@@ -213,7 +212,6 @@ int nfs_readdir_filler(nfs_readdir_descriptor_t *desc, struct page *page)
	return 0;
 error:
	unlock_page(page);
	desc->error = error;
	return -EIO;
}

@@ -483,13 +481,13 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, void *dirent,
		goto out;
	}
	timestamp = jiffies;
	desc->error = NFS_PROTO(inode)->readdir(file->f_path.dentry, cred, *desc->dir_cookie,
						page,
	status = NFS_PROTO(inode)->readdir(file->f_path.dentry, cred,
						*desc->dir_cookie, page,
						NFS_SERVER(inode)->dtsize,
						desc->plus);
	desc->page = page;
	desc->ptr = kmap(page);		/* matching kunmap in nfs_do_filldir */
	if (desc->error >= 0) {
	if (status >= 0) {
		desc->timestamp = timestamp;
		desc->timestamp_valid = 1;
		if ((status = dir_decode(desc)) == 0)
+4 −0
Original line number Diff line number Diff line
@@ -190,6 +190,10 @@ static match_table_t nfs_secflavor_tokens = {
	{ Opt_sec_lkeyi, "lkeyi" },
	{ Opt_sec_lkeyp, "lkeyp" },

	{ Opt_sec_spkm, "spkm3" },
	{ Opt_sec_spkmi, "spkm3i" },
	{ Opt_sec_spkmp, "spkm3p" },

	{ Opt_sec_err, NULL }
};

+2 −2

File changed.

Contains only whitespace changes.