Whamcloud - gitweb
LU-7315 osd-ldiskfs: handle pdo lock properly
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_handler.c
index facf412..bc04181 100644 (file)
@@ -5445,11 +5445,13 @@ again:
 
                        if (jh == NULL) {
                                brelse(bh);
-                               if (hlock != NULL)
+                               dev->od_dirent_journal = 1;
+                               if (hlock != NULL) {
                                        ldiskfs_htree_unlock(hlock);
-                               else
+                                       hlock = NULL;
+                               } else {
                                        up_read(&obj->oo_ext_idx_sem);
-                               dev->od_dirent_journal = 1;
+                               }
 
                                goto again;
                        }
@@ -5479,11 +5481,13 @@ again:
 
                        if (jh == NULL) {
                                brelse(bh);
-                               if (hlock != NULL)
+                               dev->od_dirent_journal = 1;
+                               if (hlock != NULL) {
                                        ldiskfs_htree_unlock(hlock);
-                               else
+                                       hlock = NULL;
+                               } else {
                                        up_read(&obj->oo_ext_idx_sem);
-                               dev->od_dirent_journal = 1;
+                               }
 
                                goto again;
                        }
@@ -5519,11 +5523,13 @@ again:
 
                if (jh == NULL) {
                        brelse(bh);
-                       if (hlock != NULL)
+                       dev->od_dirent_journal = 1;
+                       if (hlock != NULL) {
                                ldiskfs_htree_unlock(hlock);
-                       else
+                               hlock = NULL;
+                       } else {
                                up_read(&obj->oo_ext_idx_sem);
-                       dev->od_dirent_journal = 1;
+                       }
 
                        goto again;
                }