aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_fs.c2
-rw-r--r--drivers/infiniband/hw/qib/qib_fs.c2
-rw-r--r--drivers/staging/lustre/lustre/llite/dcache.c12
-rw-r--r--drivers/staging/lustre/lustre/llite/file.c8
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_internal.h4
-rw-r--r--drivers/staging/lustre/lustre/llite/namei.c12
6 files changed, 20 insertions, 20 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c
index 4977082e081f..33c45dfcbd88 100644
--- a/drivers/infiniband/hw/ipath/ipath_fs.c
+++ b/drivers/infiniband/hw/ipath/ipath_fs.c
@@ -277,7 +277,7 @@ static int remove_file(struct dentry *parent, char *name)
277 } 277 }
278 278
279 spin_lock(&tmp->d_lock); 279 spin_lock(&tmp->d_lock);
280 if (!(d_unhashed(tmp) && tmp->d_inode)) { 280 if (!d_unhashed(tmp) && tmp->d_inode) {
281 dget_dlock(tmp); 281 dget_dlock(tmp);
282 __d_drop(tmp); 282 __d_drop(tmp);
283 spin_unlock(&tmp->d_lock); 283 spin_unlock(&tmp->d_lock);
diff --git a/drivers/infiniband/hw/qib/qib_fs.c b/drivers/infiniband/hw/qib/qib_fs.c
index 55f240a363fe..650897a8591e 100644
--- a/drivers/infiniband/hw/qib/qib_fs.c
+++ b/drivers/infiniband/hw/qib/qib_fs.c
@@ -455,7 +455,7 @@ static int remove_file(struct dentry *parent, char *name)
455 } 455 }
456 456
457 spin_lock(&tmp->d_lock); 457 spin_lock(&tmp->d_lock);
458 if (!(d_unhashed(tmp) && tmp->d_inode)) { 458 if (!d_unhashed(tmp) && tmp->d_inode) {
459 __d_drop(tmp); 459 __d_drop(tmp);
460 spin_unlock(&tmp->d_lock); 460 spin_unlock(&tmp->d_lock);
461 simple_unlink(parent->d_inode, tmp); 461 simple_unlink(parent->d_inode, tmp);
diff --git a/drivers/staging/lustre/lustre/llite/dcache.c b/drivers/staging/lustre/lustre/llite/dcache.c
index 88614b71cf6d..ddf1fa9f67f8 100644
--- a/drivers/staging/lustre/lustre/llite/dcache.c
+++ b/drivers/staging/lustre/lustre/llite/dcache.c
@@ -270,7 +270,7 @@ void ll_invalidate_aliases(struct inode *inode)
270 270
271int ll_revalidate_it_finish(struct ptlrpc_request *request, 271int ll_revalidate_it_finish(struct ptlrpc_request *request,
272 struct lookup_intent *it, 272 struct lookup_intent *it,
273 struct dentry *de) 273 struct inode *inode)
274{ 274{
275 int rc = 0; 275 int rc = 0;
276 276
@@ -280,19 +280,17 @@ int ll_revalidate_it_finish(struct ptlrpc_request *request,
280 if (it_disposition(it, DISP_LOOKUP_NEG)) 280 if (it_disposition(it, DISP_LOOKUP_NEG))
281 return -ENOENT; 281 return -ENOENT;
282 282
283 rc = ll_prep_inode(&de->d_inode, request, NULL, it); 283 rc = ll_prep_inode(&inode, request, NULL, it);
284 284
285 return rc; 285 return rc;
286} 286}
287 287
288void ll_lookup_finish_locks(struct lookup_intent *it, struct dentry *dentry) 288void ll_lookup_finish_locks(struct lookup_intent *it, struct inode *inode)
289{ 289{
290 LASSERT(it != NULL); 290 LASSERT(it != NULL);
291 LASSERT(dentry != NULL);
292 291
293 if (it->d.lustre.it_lock_mode && dentry->d_inode != NULL) { 292 if (it->d.lustre.it_lock_mode && inode != NULL) {
294 struct inode *inode = dentry->d_inode; 293 struct ll_sb_info *sbi = ll_i2sbi(inode);
295 struct ll_sb_info *sbi = ll_i2sbi(dentry->d_inode);
296 294
297 CDEBUG(D_DLMTRACE, "setting l_data to inode %p (%lu/%u)\n", 295 CDEBUG(D_DLMTRACE, "setting l_data to inode %p (%lu/%u)\n",
298 inode, inode->i_ino, inode->i_generation); 296 inode, inode->i_ino, inode->i_generation);
diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index 7c7ef7ec908e..5ebee6ca0a10 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -2912,8 +2912,8 @@ static int __ll_inode_revalidate(struct dentry *dentry, __u64 ibits)
2912 oit.it_op = IT_LOOKUP; 2912 oit.it_op = IT_LOOKUP;
2913 2913
2914 /* Call getattr by fid, so do not provide name at all. */ 2914 /* Call getattr by fid, so do not provide name at all. */
2915 op_data = ll_prep_md_op_data(NULL, dentry->d_inode, 2915 op_data = ll_prep_md_op_data(NULL, inode,
2916 dentry->d_inode, NULL, 0, 0, 2916 inode, NULL, 0, 0,
2917 LUSTRE_OPC_ANY, NULL); 2917 LUSTRE_OPC_ANY, NULL);
2918 if (IS_ERR(op_data)) 2918 if (IS_ERR(op_data))
2919 return PTR_ERR(op_data); 2919 return PTR_ERR(op_data);
@@ -2931,7 +2931,7 @@ static int __ll_inode_revalidate(struct dentry *dentry, __u64 ibits)
2931 goto out; 2931 goto out;
2932 } 2932 }
2933 2933
2934 rc = ll_revalidate_it_finish(req, &oit, dentry); 2934 rc = ll_revalidate_it_finish(req, &oit, inode);
2935 if (rc != 0) { 2935 if (rc != 0) {
2936 ll_intent_release(&oit); 2936 ll_intent_release(&oit);
2937 goto out; 2937 goto out;
@@ -2944,7 +2944,7 @@ static int __ll_inode_revalidate(struct dentry *dentry, __u64 ibits)
2944 if (!dentry->d_inode->i_nlink) 2944 if (!dentry->d_inode->i_nlink)
2945 d_lustre_invalidate(dentry, 0); 2945 d_lustre_invalidate(dentry, 0);
2946 2946
2947 ll_lookup_finish_locks(&oit, dentry); 2947 ll_lookup_finish_locks(&oit, inode);
2948 } else if (!ll_have_md_lock(dentry->d_inode, &ibits, LCK_MINMODE)) { 2948 } else if (!ll_have_md_lock(dentry->d_inode, &ibits, LCK_MINMODE)) {
2949 struct ll_sb_info *sbi = ll_i2sbi(dentry->d_inode); 2949 struct ll_sb_info *sbi = ll_i2sbi(dentry->d_inode);
2950 u64 valid = OBD_MD_FLGETATTR; 2950 u64 valid = OBD_MD_FLGETATTR;
diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h
index d032c2b086cc..2af1d7286250 100644
--- a/drivers/staging/lustre/lustre/llite/llite_internal.h
+++ b/drivers/staging/lustre/lustre/llite/llite_internal.h
@@ -786,9 +786,9 @@ extern const struct dentry_operations ll_d_ops;
786void ll_intent_drop_lock(struct lookup_intent *); 786void ll_intent_drop_lock(struct lookup_intent *);
787void ll_intent_release(struct lookup_intent *); 787void ll_intent_release(struct lookup_intent *);
788void ll_invalidate_aliases(struct inode *); 788void ll_invalidate_aliases(struct inode *);
789void ll_lookup_finish_locks(struct lookup_intent *it, struct dentry *dentry); 789void ll_lookup_finish_locks(struct lookup_intent *it, struct inode *inode);
790int ll_revalidate_it_finish(struct ptlrpc_request *request, 790int ll_revalidate_it_finish(struct ptlrpc_request *request,
791 struct lookup_intent *it, struct dentry *de); 791 struct lookup_intent *it, struct inode *inode);
792 792
793/* llite/llite_lib.c */ 793/* llite/llite_lib.c */
794extern struct super_operations lustre_super_operations; 794extern struct super_operations lustre_super_operations;
diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c
index 4f361b77c749..890ac190f5fa 100644
--- a/drivers/staging/lustre/lustre/llite/namei.c
+++ b/drivers/staging/lustre/lustre/llite/namei.c
@@ -481,6 +481,7 @@ static struct dentry *ll_lookup_it(struct inode *parent, struct dentry *dentry,
481 struct lookup_intent lookup_it = { .it_op = IT_LOOKUP }; 481 struct lookup_intent lookup_it = { .it_op = IT_LOOKUP };
482 struct dentry *save = dentry, *retval; 482 struct dentry *save = dentry, *retval;
483 struct ptlrpc_request *req = NULL; 483 struct ptlrpc_request *req = NULL;
484 struct inode *inode;
484 struct md_op_data *op_data; 485 struct md_op_data *op_data;
485 __u32 opc; 486 __u32 opc;
486 int rc; 487 int rc;
@@ -539,12 +540,13 @@ static struct dentry *ll_lookup_it(struct inode *parent, struct dentry *dentry,
539 goto out; 540 goto out;
540 } 541 }
541 542
542 if ((it->it_op & IT_OPEN) && dentry->d_inode && 543 inode = dentry->d_inode;
543 !S_ISREG(dentry->d_inode->i_mode) && 544 if ((it->it_op & IT_OPEN) && inode &&
544 !S_ISDIR(dentry->d_inode->i_mode)) { 545 !S_ISREG(inode->i_mode) &&
545 ll_release_openhandle(dentry->d_inode, it); 546 !S_ISDIR(inode->i_mode)) {
547 ll_release_openhandle(inode, it);
546 } 548 }
547 ll_lookup_finish_locks(it, dentry); 549 ll_lookup_finish_locks(it, inode);
548 550
549 if (dentry == save) 551 if (dentry == save)
550 retval = NULL; 552 retval = NULL;