missing LOOKUP_POSITIVE
>
> if ((r = path_walk(path, &nd)))
> goto out;
>
> inode = nd.dentry->d_inode;
> if (!inode) {
> r = -ENOENT;
> goto out;
> }
>
> if (!S_ISBLK(inode->i_mode)) {
> r = -EINVAL;
> goto out;
> }
shouldb be -ENOTBLK
new check here:
if (nd.mnt->mnt_flags & MNT_NODEV)
r = -EACCES;
>
> *dev = inode->i_rdev;
>
> out:
> path_release(&nd);
> return r;
I also think that this doesn not make much sense, you really want
name to properly opened struct block_device * instead, i.e. the firsdt halve
of get_sb_bdev()
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/