Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull vfs fixes from Al Viro:
"A couple of fixes; a leak in mntns_install() caught by Andrei (this
cycle regression) + d_invalidate() softlockup fix - that had been
reported by a bunch of people lately, but the problem is pretty old"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
fs: don't forget to put old mntns in mntns_install
Hang/soft lockup in d_invalidate with simultaneous calls

+6 -6
+4 -6
fs/dcache.c
··· 1494 1494 { 1495 1495 struct detach_data *data = _data; 1496 1496 1497 - if (!data->mountpoint && !data->select.found) 1497 + if (!data->mountpoint && list_empty(&data->select.dispose)) 1498 1498 __d_drop(data->select.start); 1499 1499 } 1500 1500 ··· 1536 1536 1537 1537 d_walk(dentry, &data, detach_and_collect, check_and_drop); 1538 1538 1539 - if (data.select.found) 1539 + if (!list_empty(&data.select.dispose)) 1540 1540 shrink_dentry_list(&data.select.dispose); 1541 + else if (!data.mountpoint) 1542 + return; 1541 1543 1542 1544 if (data.mountpoint) { 1543 1545 detach_mounts(data.mountpoint); 1544 1546 dput(data.mountpoint); 1545 1547 } 1546 - 1547 - if (!data.mountpoint && !data.select.found) 1548 - break; 1549 - 1550 1548 cond_resched(); 1551 1549 } 1552 1550 }
+2
fs/namespace.c
··· 3488 3488 return err; 3489 3489 } 3490 3490 3491 + put_mnt_ns(old_mnt_ns); 3492 + 3491 3493 /* Update the pwd and root */ 3492 3494 set_fs_pwd(fs, &root); 3493 3495 set_fs_root(fs, &root);