diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-09-11 15:22:06 -0700 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2007-10-12 11:54:38 -0700 |
commit | be94d11704ef79030fd2e6a0c41b4a7f65f9e860 (patch) | |
tree | 10b060625c464db127210acc00e8aa80b43ce6f3 /fs/ocfs2/sysfile.c | |
parent | 0bfbbf62a8b5a129ba2c689283bfece80a601aba (diff) | |
download | linux-3.10-be94d11704ef79030fd2e6a0c41b4a7f65f9e860.tar.gz linux-3.10-be94d11704ef79030fd2e6a0c41b4a7f65f9e860.tar.bz2 linux-3.10-be94d11704ef79030fd2e6a0c41b4a7f65f9e860.zip |
ocfs2: Provide convenience function for ino lookup
A couple paths which needed to just match a parent dir + name pair to an
inode number were a bit messy because they had to deal with
ocfs2_find_files_on_disk() which returns a larger number of values. Provide
a convenience function, ocfs2_lookup_ino_from_name() which internalizes all
the extra accounting.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/sysfile.c')
-rw-r--r-- | fs/ocfs2/sysfile.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/ocfs2/sysfile.c b/fs/ocfs2/sysfile.c index 5df6e35d09b..fd2e846e3e6 100644 --- a/fs/ocfs2/sysfile.c +++ b/fs/ocfs2/sysfile.c @@ -100,17 +100,14 @@ static struct inode * _ocfs2_get_system_file_inode(struct ocfs2_super *osb, char namebuf[40]; struct inode *inode = NULL; u64 blkno; - struct buffer_head *dirent_bh = NULL; - struct ocfs2_dir_entry *de = NULL; int status = 0; ocfs2_sprintf_system_inode_name(namebuf, sizeof(namebuf), type, slot); - status = ocfs2_find_files_on_disk(namebuf, strlen(namebuf), - &blkno, osb->sys_root_inode, - &dirent_bh, &de); + status = ocfs2_lookup_ino_from_name(osb->sys_root_inode, namebuf, + strlen(namebuf), &blkno); if (status < 0) { goto bail; } @@ -122,8 +119,7 @@ static struct inode * _ocfs2_get_system_file_inode(struct ocfs2_super *osb, goto bail; } bail: - if (dirent_bh) - brelse(dirent_bh); + return inode; } |