summaryrefslogtreecommitdiff
path: root/drivers/devfreq
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2016-02-01 14:04:46 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-03-09 15:31:54 -0800
commitb723bb7c4fa9c68666386b5d83dde7d2bf2d08a8 (patch)
tree06540cc702f91e9fba0e5c1eb753728daa89f70f /drivers/devfreq
parent44024ba884560d7936b7c7230880cfc43398c34c (diff)
downloadlwn-b723bb7c4fa9c68666386b5d83dde7d2bf2d08a8.tar.gz
lwn-b723bb7c4fa9c68666386b5d83dde7d2bf2d08a8.zip
Fix directory hardlinks from deleted directories
commit be629c62a603e5935f8177fd8a19e014100a259e upstream. When a directory is deleted, we don't take too much care about killing off all the dirents that belong to it — on the basis that on remount, the scan will conclude that the directory is dead anyway. This doesn't work though, when the deleted directory contained a child directory which was moved *out*. In the early stages of the fs build we can then end up with an apparent hard link, with the child directory appearing both in its true location, and as a child of the original directory which are this stage of the mount process we don't *yet* know is defunct. To resolve this, take out the early special-casing of the "directories shall not have hard links" rule in jffs2_build_inode_pass1(), and let the normal nlink processing happen for directories as well as other inodes. Then later in the build process we can set ic->pino_nlink to the parent inode#, as is required for directories during normal operaton, instead of the nlink. And complain only *then* about hard links which are still in evidence even after killing off all the unreachable paths. Reported-by: Liu Song <liu.song11@zte.com.cn> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/devfreq')
0 files changed, 0 insertions, 0 deletions