goto out;
}
- if (path_or_device[0] == '/')
- rc = get_root_path(WANT_FD, NULL, &mnt_fd,
- (char *)path_or_device, -1, NULL, NULL);
- else
- rc = get_root_path(WANT_FD, (char *)path_or_device,
- &mnt_fd, NULL, -1, NULL, NULL);
-
+ rc = llapi_root_path_open(path_or_device, &mnt_fd);
if (rc < 0)
goto out;
/* mnt_fd is cached internally, no need to close it */
rc = llapi_fid2path_at(mnt_fd, &fid, path, pathlen, recno, linkno);
+ close(mnt_fd);
out:
return rc;
*/
int llapi_open_by_fid_at(int lustre_fd, const struct lu_fid *fid, int flags)
{
- struct file_handle *handle;
+ struct file_handle *handle = NULL;
int fd;
int rc;
{
int mnt_fd, rc;
- /* this will return a cached FD if available, so only one open needed.
- * WANT_FD doesn't modify lustre_dir so casting away "const" is OK */
- rc = get_root_path(WANT_FD, NULL, &mnt_fd, (char *)lustre_dir, 0, NULL,
- NULL);
+ rc = llapi_root_path_open(lustre_dir, &mnt_fd);
if (rc)
goto out;
- /* "mnt_fd" is cached internally for reuse, no need to close it */
rc = llapi_open_by_fid_at(mnt_fd, fid, flags);
+ close(mnt_fd);
out:
return rc;
}