···12391239 /* might go back up the wrong parent if we have had a rename. */12401240 if (need_seqretry(&rename_lock, seq))12411241 goto rename_retry;12421242- next = child->d_child.next;12431243- while (unlikely(child->d_flags & DCACHE_DENTRY_KILLED)) {12421242+ /* go into the first sibling still alive */12431243+ do {12441244+ next = child->d_child.next;12441245 if (next == &this_parent->d_subdirs)12451246 goto ascend;12461247 child = list_entry(next, struct dentry, d_child);12471247- next = next->next;12481248- }12481248+ } while (unlikely(child->d_flags & DCACHE_DENTRY_KILLED));12491249 rcu_read_unlock();12501250 goto resume;12511251 }
+2
fs/ncpfs/dir.c
···11451145 case 0x00:11461146 ncp_dbg(1, "renamed %pd -> %pd\n",11471147 old_dentry, new_dentry);11481148+ ncp_d_prune(old_dentry);11491149+ ncp_d_prune(new_dentry);11481150 break;11491151 case 0x9E:11501152 error = -ENAMETOOLONG;
+17-17
fs/ufs/balloc.c
···51515252 if (ufs_fragnum(fragment) + count > uspi->s_fpg)5353 ufs_error (sb, "ufs_free_fragments", "internal error");5454-5555- lock_ufs(sb);5454+5555+ mutex_lock(&UFS_SB(sb)->s_lock);56565757 cgno = ufs_dtog(uspi, fragment);5858 bit = ufs_dtogd(uspi, fragment);···115115 if (sb->s_flags & MS_SYNCHRONOUS)116116 ubh_sync_block(UCPI_UBH(ucpi));117117 ufs_mark_sb_dirty(sb);118118-119119- unlock_ufs(sb);118118+119119+ mutex_unlock(&UFS_SB(sb)->s_lock);120120 UFSD("EXIT\n");121121 return;122122123123failed:124124- unlock_ufs(sb);124124+ mutex_unlock(&UFS_SB(sb)->s_lock);125125 UFSD("EXIT (FAILED)\n");126126 return;127127}···151151 goto failed;152152 }153153154154- lock_ufs(sb);154154+ mutex_lock(&UFS_SB(sb)->s_lock);155155156156do_more:157157 overflow = 0;···211211 }212212213213 ufs_mark_sb_dirty(sb);214214- unlock_ufs(sb);214214+ mutex_unlock(&UFS_SB(sb)->s_lock);215215 UFSD("EXIT\n");216216 return;217217218218failed_unlock:219219- unlock_ufs(sb);219219+ mutex_unlock(&UFS_SB(sb)->s_lock);220220failed:221221 UFSD("EXIT (FAILED)\n");222222 return;···357357 usb1 = ubh_get_usb_first(uspi);358358 *err = -ENOSPC;359359360360- lock_ufs(sb);360360+ mutex_lock(&UFS_SB(sb)->s_lock);361361 tmp = ufs_data_ptr_to_cpu(sb, p);362362363363 if (count + ufs_fragnum(fragment) > uspi->s_fpb) {···378378 "fragment %llu, tmp %llu\n",379379 (unsigned long long)fragment,380380 (unsigned long long)tmp);381381- unlock_ufs(sb);381381+ mutex_unlock(&UFS_SB(sb)->s_lock);382382 return INVBLOCK;383383 }384384 if (fragment < UFS_I(inode)->i_lastfrag) {385385 UFSD("EXIT (ALREADY ALLOCATED)\n");386386- unlock_ufs(sb);386386+ mutex_unlock(&UFS_SB(sb)->s_lock);387387 return 0;388388 }389389 }390390 else {391391 if (tmp) {392392 UFSD("EXIT (ALREADY ALLOCATED)\n");393393- unlock_ufs(sb);393393+ mutex_unlock(&UFS_SB(sb)->s_lock);394394 return 0;395395 }396396 }···399399 * There is not enough space for user on the device400400 */401401 if (!capable(CAP_SYS_RESOURCE) && ufs_freespace(uspi, UFS_MINFREE) <= 0) {402402- unlock_ufs(sb);402402+ mutex_unlock(&UFS_SB(sb)->s_lock);403403 UFSD("EXIT (FAILED)\n");404404 return 0;405405 }···424424 ufs_clear_frags(inode, result + oldcount,425425 newcount - oldcount, locked_page != NULL);426426 }427427- unlock_ufs(sb);427427+ mutex_unlock(&UFS_SB(sb)->s_lock);428428 UFSD("EXIT, result %llu\n", (unsigned long long)result);429429 return result;430430 }···439439 fragment + count);440440 ufs_clear_frags(inode, result + oldcount, newcount - oldcount,441441 locked_page != NULL);442442- unlock_ufs(sb);442442+ mutex_unlock(&UFS_SB(sb)->s_lock);443443 UFSD("EXIT, result %llu\n", (unsigned long long)result);444444 return result;445445 }···477477 *err = 0;478478 UFS_I(inode)->i_lastfrag = max(UFS_I(inode)->i_lastfrag,479479 fragment + count);480480- unlock_ufs(sb);480480+ mutex_unlock(&UFS_SB(sb)->s_lock);481481 if (newcount < request)482482 ufs_free_fragments (inode, result + newcount, request - newcount);483483 ufs_free_fragments (inode, tmp, oldcount);···485485 return result;486486 }487487488488- unlock_ufs(sb);488488+ mutex_unlock(&UFS_SB(sb)->s_lock);489489 UFSD("EXIT (FAILED)\n");490490 return 0;491491}