Skip to content

Commit

Permalink
page-types: introduce checked_open()
Browse files Browse the repository at this point in the history
This helps merge duplicate code (now and future) and outstand the main
logic.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Wu Fengguang authored and torvalds committed Oct 8, 2009
1 parent 0c57eff commit 31bbf66
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions Documentation/vm/page-types.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,18 @@ static void fatal(const char *x, ...)
exit(EXIT_FAILURE);
}

int checked_open(const char *pathname, int flags)
{
int fd = open(pathname, flags);

if (fd < 0) {
perror(pathname);
exit(EXIT_FAILURE);
}

return fd;
}


/*
* page flag names
Expand Down Expand Up @@ -534,11 +546,7 @@ static void walk_addr_ranges(void)
{
int i;

kpageflags_fd = open(PROC_KPAGEFLAGS, O_RDONLY);
if (kpageflags_fd < 0) {
perror(PROC_KPAGEFLAGS);
exit(EXIT_FAILURE);
}
kpageflags_fd = checked_open(PROC_KPAGEFLAGS, O_RDONLY);

if (!nr_addr_ranges)
add_addr_range(0, ULONG_MAX);
Expand Down Expand Up @@ -631,11 +639,7 @@ static void parse_pid(const char *str)
opt_pid = parse_number(str);

sprintf(buf, "/proc/%d/pagemap", opt_pid);
pagemap_fd = open(buf, O_RDONLY);
if (pagemap_fd < 0) {
perror(buf);
exit(EXIT_FAILURE);
}
pagemap_fd = checked_open(buf, O_RDONLY);

sprintf(buf, "/proc/%d/maps", opt_pid);
file = fopen(buf, "r");
Expand Down

0 comments on commit 31bbf66

Please sign in to comment.