diff options
Diffstat (limited to 'fs/ceph')
| -rw-r--r-- | fs/ceph/Makefile | 1 | ||||
| -rw-r--r-- | fs/ceph/addr.c | 1 | ||||
| -rw-r--r-- | fs/ceph/caps.c | 6 | ||||
| -rw-r--r-- | fs/ceph/ceph_frag.c | 1 | ||||
| -rw-r--r-- | fs/ceph/debugfs.c | 1 | ||||
| -rw-r--r-- | fs/ceph/dir.c | 1 | ||||
| -rw-r--r-- | fs/ceph/export.c | 1 | ||||
| -rw-r--r-- | fs/ceph/file.c | 1 | ||||
| -rw-r--r-- | fs/ceph/inode.c | 1 | ||||
| -rw-r--r-- | fs/ceph/ioctl.c | 1 | ||||
| -rw-r--r-- | fs/ceph/ioctl.h | 1 | ||||
| -rw-r--r-- | fs/ceph/locks.c | 1 | ||||
| -rw-r--r-- | fs/ceph/mds_client.c | 19 | ||||
| -rw-r--r-- | fs/ceph/mds_client.h | 4 | ||||
| -rw-r--r-- | fs/ceph/mdsmap.c | 1 | ||||
| -rw-r--r-- | fs/ceph/snap.c | 9 | ||||
| -rw-r--r-- | fs/ceph/strings.c | 1 | ||||
| -rw-r--r-- | fs/ceph/super.h | 1 | ||||
| -rw-r--r-- | fs/ceph/xattr.c | 1 | 
19 files changed, 39 insertions, 14 deletions
| diff --git a/fs/ceph/Makefile b/fs/ceph/Makefile index 85a4230b9bff..174f5709e508 100644 --- a/fs/ceph/Makefile +++ b/fs/ceph/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  #  # Makefile for CEPH filesystem.  # diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index b3e3edc09d80..4d622654bfbc 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/backing-dev.h> diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 157fe59fbabe..ff5d32cf9578 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/fs.h> @@ -1991,6 +1992,7 @@ static int try_flush_caps(struct inode *inode, u64 *ptid)  retry:  	spin_lock(&ci->i_ceph_lock);  	if (ci->i_ceph_flags & CEPH_I_NOFLUSH) { +		spin_unlock(&ci->i_ceph_lock);  		dout("try_flush_caps skipping %p I_NOFLUSH set\n", inode);  		goto out;  	} @@ -2008,8 +2010,10 @@ retry:  			mutex_lock(&session->s_mutex);  			goto retry;  		} -		if (cap->session->s_state < CEPH_MDS_SESSION_OPEN) +		if (cap->session->s_state < CEPH_MDS_SESSION_OPEN) { +			spin_unlock(&ci->i_ceph_lock);  			goto out; +		}  		flushing = __mark_caps_flushing(inode, session, true,  						&flush_tid, &oldest_flush_tid); diff --git a/fs/ceph/ceph_frag.c b/fs/ceph/ceph_frag.c index bdce8b1fbd06..6f67d5b884a0 100644 --- a/fs/ceph/ceph_frag.c +++ b/fs/ceph/ceph_frag.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  /*   * Ceph 'frag' type   */ diff --git a/fs/ceph/debugfs.c b/fs/ceph/debugfs.c index d635496ea189..644def813754 100644 --- a/fs/ceph/debugfs.c +++ b/fs/ceph/debugfs.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/device.h> diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index 019c2036d36f..8a5266699b67 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/spinlock.h> diff --git a/fs/ceph/export.c b/fs/ceph/export.c index 7df550c13d7f..3c59ad180ef0 100644 --- a/fs/ceph/export.c +++ b/fs/ceph/export.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/exportfs.h> diff --git a/fs/ceph/file.c b/fs/ceph/file.c index 65a6fa12c857..5c17125f45c7 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/module.h> diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 373dab5173ca..f2550a076edc 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/module.h> diff --git a/fs/ceph/ioctl.c b/fs/ceph/ioctl.c index 4c9c72f26eb9..851aa69ec8f0 100644 --- a/fs/ceph/ioctl.c +++ b/fs/ceph/ioctl.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/in.h> diff --git a/fs/ceph/ioctl.h b/fs/ceph/ioctl.h index c77028afb1e1..51f7f1d39a94 100644 --- a/fs/ceph/ioctl.h +++ b/fs/ceph/ioctl.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef FS_CEPH_IOCTL_H  #define FS_CEPH_IOCTL_H diff --git a/fs/ceph/locks.c b/fs/ceph/locks.c index 8cd63e8123d8..e7cce412f2cf 100644 --- a/fs/ceph/locks.c +++ b/fs/ceph/locks.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/file.h> diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 9dd6b836ac9e..0687ab3c3267 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/fs.h> @@ -7,7 +8,6 @@  #include <linux/sched.h>  #include <linux/debugfs.h>  #include <linux/seq_file.h> -#include <linux/utsname.h>  #include <linux/ratelimit.h>  #include "super.h" @@ -735,12 +735,13 @@ static int __choose_mds(struct ceph_mds_client *mdsc,  			inode = req->r_inode;  			ihold(inode);  		} else { -			/* req->r_dentry is non-null for LSSNAP request. -			 * fall-thru */ -			WARN_ON_ONCE(!req->r_dentry); +			/* req->r_dentry is non-null for LSSNAP request */ +			rcu_read_lock(); +			inode = get_nonsnap_parent(req->r_dentry); +			rcu_read_unlock(); +			dout("__choose_mds using snapdir's parent %p\n", inode);  		} -	} -	if (!inode && req->r_dentry) { +	} else if (req->r_dentry) {  		/* ignore race with rename; old or new d_parent is okay */  		struct dentry *parent;  		struct inode *dir; @@ -884,8 +885,8 @@ static struct ceph_msg *create_session_open_msg(struct ceph_mds_client *mdsc, u6  	void *p;  	const char* metadata[][2] = { -		{"hostname", utsname()->nodename}, -		{"kernel_version", utsname()->release}, +		{"hostname", mdsc->nodename}, +		{"kernel_version", init_utsname()->release},  		{"entity_id", opt->name ? : ""},  		{"root", fsopt->server_path ? : "/"},  		{NULL, NULL} @@ -3539,6 +3540,8 @@ int ceph_mdsc_init(struct ceph_fs_client *fsc)  	init_rwsem(&mdsc->pool_perm_rwsem);  	mdsc->pool_perm_tree = RB_ROOT; +	strncpy(mdsc->nodename, utsname()->nodename, +		sizeof(mdsc->nodename) - 1);  	return 0;  } diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h index db57ae98ed34..837ac4b087a0 100644 --- a/fs/ceph/mds_client.h +++ b/fs/ceph/mds_client.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef _FS_CEPH_MDS_CLIENT_H  #define _FS_CEPH_MDS_CLIENT_H @@ -8,6 +9,7 @@  #include <linux/rbtree.h>  #include <linux/spinlock.h>  #include <linux/refcount.h> +#include <linux/utsname.h>  #include <linux/ceph/types.h>  #include <linux/ceph/messenger.h> @@ -368,6 +370,8 @@ struct ceph_mds_client {  	struct rw_semaphore     pool_perm_rwsem;  	struct rb_root		pool_perm_tree; + +	char nodename[__NEW_UTS_LEN + 1];  };  extern const char *ceph_mds_op_name(int op); diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c index 33ced4c22732..44e53abeb32a 100644 --- a/fs/ceph/mdsmap.c +++ b/fs/ceph/mdsmap.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/bug.h> diff --git a/fs/ceph/snap.c b/fs/ceph/snap.c index 1ffc8b426c1c..8a2ca41e4b97 100644 --- a/fs/ceph/snap.c +++ b/fs/ceph/snap.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/sort.h> @@ -374,12 +375,10 @@ static int build_snap_context(struct ceph_snap_realm *realm,  	     realm->ino, realm, snapc, snapc->seq,  	     (unsigned int) snapc->num_snaps); -	if (realm->cached_context) { -		ceph_put_snap_context(realm->cached_context); -		/* queue realm for cap_snap creation */ -		list_add_tail(&realm->dirty_item, dirty_realms); -	} +	ceph_put_snap_context(realm->cached_context);  	realm->cached_context = snapc; +	/* queue realm for cap_snap creation */ +	list_add_tail(&realm->dirty_item, dirty_realms);  	return 0;  fail: diff --git a/fs/ceph/strings.c b/fs/ceph/strings.c index 913dea163d5c..4a79f3632260 100644 --- a/fs/ceph/strings.c +++ b/fs/ceph/strings.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  /*   * Ceph fs string constants   */ diff --git a/fs/ceph/super.h b/fs/ceph/super.h index 279a2f401cf5..3e27a28aa44a 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef _FS_CEPH_SUPER_H  #define _FS_CEPH_SUPER_H diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c index 3542b2c364cf..e1c4e0b12b4c 100644 --- a/fs/ceph/xattr.c +++ b/fs/ceph/xattr.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/ceph/ceph_debug.h>  #include <linux/ceph/pagelist.h> |