[PATCH] assorted path_lookup() -> kern_path() conversions
more nameidata eviction Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@ -1268,33 +1268,33 @@ EXPORT_SYMBOL(ioctl_by_bdev);
|
||||
* namespace if possible and return it. Return ERR_PTR(error)
|
||||
* otherwise.
|
||||
*/
|
||||
struct block_device *lookup_bdev(const char *path)
|
||||
struct block_device *lookup_bdev(const char *pathname)
|
||||
{
|
||||
struct block_device *bdev;
|
||||
struct inode *inode;
|
||||
struct nameidata nd;
|
||||
struct path path;
|
||||
int error;
|
||||
|
||||
if (!path || !*path)
|
||||
if (!pathname || !*pathname)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
error = path_lookup(path, LOOKUP_FOLLOW, &nd);
|
||||
error = kern_path(pathname, LOOKUP_FOLLOW, &path);
|
||||
if (error)
|
||||
return ERR_PTR(error);
|
||||
|
||||
inode = nd.path.dentry->d_inode;
|
||||
inode = path.dentry->d_inode;
|
||||
error = -ENOTBLK;
|
||||
if (!S_ISBLK(inode->i_mode))
|
||||
goto fail;
|
||||
error = -EACCES;
|
||||
if (nd.path.mnt->mnt_flags & MNT_NODEV)
|
||||
if (path.mnt->mnt_flags & MNT_NODEV)
|
||||
goto fail;
|
||||
error = -ENOMEM;
|
||||
bdev = bd_acquire(inode);
|
||||
if (!bdev)
|
||||
goto fail;
|
||||
out:
|
||||
path_put(&nd.path);
|
||||
path_put(&path);
|
||||
return bdev;
|
||||
fail:
|
||||
bdev = ERR_PTR(error);
|
||||
|
Reference in New Issue
Block a user