Browse Source

lustre: use is_root_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 10 years ago
parent
commit
f76c23daac

+ 2 - 3
drivers/staging/lustre/lustre/llite/dir.c

@@ -1389,7 +1389,7 @@ lmv_out_free:
 				return -EFAULT;
 				return -EFAULT;
 		}
 		}
 
 
-		if (inode->i_sb->s_root == file->f_dentry)
+		if (is_root_inode(inode))
 			set_default = 1;
 			set_default = 1;
 
 
 		/* in v1 and v3 cases lumv1 points to data */
 		/* in v1 and v3 cases lumv1 points to data */
@@ -1780,8 +1780,7 @@ out_quotactl:
 		return ll_flush_ctx(inode);
 		return ll_flush_ctx(inode);
 #ifdef CONFIG_FS_POSIX_ACL
 #ifdef CONFIG_FS_POSIX_ACL
 	case LL_IOC_RMTACL: {
 	case LL_IOC_RMTACL: {
-	    if (sbi->ll_flags & LL_SBI_RMT_CLIENT &&
-		inode == inode->i_sb->s_root->d_inode) {
+	    if (sbi->ll_flags & LL_SBI_RMT_CLIENT && is_root_inode(inode)) {
 		struct ll_file_data *fd = LUSTRE_FPRIVATE(file);
 		struct ll_file_data *fd = LUSTRE_FPRIVATE(file);
 
 
 		LASSERT(fd != NULL);
 		LASSERT(fd != NULL);

+ 6 - 7
drivers/staging/lustre/lustre/llite/file.c

@@ -341,8 +341,7 @@ int ll_file_release(struct inode *inode, struct file *file)
 	       inode->i_generation, inode);
 	       inode->i_generation, inode);
 
 
 #ifdef CONFIG_FS_POSIX_ACL
 #ifdef CONFIG_FS_POSIX_ACL
-	if (sbi->ll_flags & LL_SBI_RMT_CLIENT &&
-	    inode == inode->i_sb->s_root->d_inode) {
+	if (sbi->ll_flags & LL_SBI_RMT_CLIENT && is_root_inode(inode)) {
 		struct ll_file_data *fd = LUSTRE_FPRIVATE(file);
 		struct ll_file_data *fd = LUSTRE_FPRIVATE(file);
 
 
 		LASSERT(fd != NULL);
 		LASSERT(fd != NULL);
@@ -354,7 +353,7 @@ int ll_file_release(struct inode *inode, struct file *file)
 	}
 	}
 #endif
 #endif
 
 
-	if (inode->i_sb->s_root != file->f_dentry)
+	if (!is_root_inode(inode))
 		ll_stats_ops_tally(sbi, LPROC_LL_RELEASE, 1);
 		ll_stats_ops_tally(sbi, LPROC_LL_RELEASE, 1);
 	fd = LUSTRE_FPRIVATE(file);
 	fd = LUSTRE_FPRIVATE(file);
 	LASSERT(fd != NULL);
 	LASSERT(fd != NULL);
@@ -366,7 +365,7 @@ int ll_file_release(struct inode *inode, struct file *file)
 	    lli->lli_opendir_pid != 0)
 	    lli->lli_opendir_pid != 0)
 		ll_stop_statahead(inode, lli->lli_opendir_key);
 		ll_stop_statahead(inode, lli->lli_opendir_key);
 
 
-	if (inode->i_sb->s_root == file->f_dentry) {
+	if (is_root_inode(inode)) {
 		LUSTRE_FPRIVATE(file) = NULL;
 		LUSTRE_FPRIVATE(file) = NULL;
 		ll_file_data_put(fd);
 		ll_file_data_put(fd);
 		return 0;
 		return 0;
@@ -562,7 +561,7 @@ int ll_file_open(struct inode *inode, struct file *file)
 		spin_unlock(&lli->lli_sa_lock);
 		spin_unlock(&lli->lli_sa_lock);
 	}
 	}
 
 
-	if (inode->i_sb->s_root == file->f_dentry) {
+	if (is_root_inode(inode)) {
 		LUSTRE_FPRIVATE(file) = fd;
 		LUSTRE_FPRIVATE(file) = fd;
 		return 0;
 		return 0;
 	}
 	}
@@ -1636,7 +1635,7 @@ int ll_release_openhandle(struct inode *inode, struct lookup_intent *it)
 	LASSERT(inode);
 	LASSERT(inode);
 
 
 	/* Root ? Do nothing. */
 	/* Root ? Do nothing. */
-	if (inode->i_sb->s_root->d_inode == inode)
+	if (is_root_inode(inode))
 		return 0;
 		return 0;
 
 
 	/* No open handle to close? Move away */
 	/* No open handle to close? Move away */
@@ -3108,7 +3107,7 @@ int ll_inode_permission(struct inode *inode, int mask)
        /* as root inode are NOT getting validated in lookup operation,
        /* as root inode are NOT getting validated in lookup operation,
 	* need to do it before permission check. */
 	* need to do it before permission check. */
 
 
-	if (inode == inode->i_sb->s_root->d_inode) {
+	if (is_root_inode(inode)) {
 		rc = __ll_inode_revalidate(inode->i_sb->s_root,
 		rc = __ll_inode_revalidate(inode->i_sb->s_root,
 					   MDS_INODELOCK_LOOKUP);
 					   MDS_INODELOCK_LOOKUP);
 		if (rc)
 		if (rc)

+ 1 - 1
drivers/staging/lustre/lustre/llite/namei.c

@@ -264,7 +264,7 @@ int ll_md_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc,
 
 
 		if ((bits & (MDS_INODELOCK_LOOKUP | MDS_INODELOCK_PERM)) &&
 		if ((bits & (MDS_INODELOCK_LOOKUP | MDS_INODELOCK_PERM)) &&
 		    inode->i_sb->s_root != NULL &&
 		    inode->i_sb->s_root != NULL &&
-		    inode != inode->i_sb->s_root->d_inode)
+		    is_root_inode(inode))
 			ll_invalidate_aliases(inode);
 			ll_invalidate_aliases(inode);
 
 
 		iput(inode);
 		iput(inode);