OSDN Git Service

hfs: don't allow mounting over .../rsrc
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 30 Apr 2018 23:52:18 +0000 (19:52 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 22 May 2018 18:28:00 +0000 (14:28 -0400)
That's one case when unlink() destroys a subtree, thanks to "resource
fork" idiocy.  We might forcibly evict that shit on unlink(2), but
for now let's just disallow overmounting; as it is, anything that
plays games with those would leak mounts.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/hfs/inode.c

index 0612fa3..b3309b8 100644 (file)
@@ -543,6 +543,7 @@ static struct dentry *hfs_file_lookup(struct inode *dir, struct dentry *dentry,
        igrab(dir);
        hlist_add_fake(&inode->i_hash);
        mark_inode_dirty(inode);
+       dont_mount(dentry);
 out:
        return d_splice_alias(inode, dentry);
 }