summaryrefslogtreecommitdiffstats
path: root/mount/swapon.c
diff options
context:
space:
mode:
authorKarel Zak2009-03-02 11:24:03 +0100
committerKarel Zak2009-03-02 11:24:03 +0100
commit88530f9f24fba89fb8f0b9f014a1bf945caa9312 (patch)
treedc63b570fc6075a198a753aa6efb43d31a036f22 /mount/swapon.c
parentmkswap: handle 2^32 pages (diff)
downloadkernel-qcow2-util-linux-88530f9f24fba89fb8f0b9f014a1bf945caa9312.tar.gz
kernel-qcow2-util-linux-88530f9f24fba89fb8f0b9f014a1bf945caa9312.tar.xz
kernel-qcow2-util-linux-88530f9f24fba89fb8f0b9f014a1bf945caa9312.zip
swapon: do_swapon() refactoring (move stat() checks)
It's better to do stat() based checks immediately after the stat() call. Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'mount/swapon.c')
-rw-r--r--mount/swapon.c49
1 files changed, 25 insertions, 24 deletions
diff --git a/mount/swapon.c b/mount/swapon.c
index 8cdb7fb18..d68e39653 100644
--- a/mount/swapon.c
+++ b/mount/swapon.c
@@ -375,6 +375,31 @@ do_swapon(const char *orig_special, int prio, int canonic) {
return -1;
}
+ /* people generally dislike this warning - now it is printed
+ only when `verbose' is set */
+ if (verbose) {
+ int permMask = (S_ISBLK(st.st_mode) ? 07007 : 07077);
+
+ if ((st.st_mode & permMask) != 0) {
+ fprintf(stderr, _("%s: warning: %s has "
+ "insecure permissions %04o, "
+ "%04o suggested\n"),
+ progname, special, st.st_mode & 07777,
+ ~permMask & 0666);
+ }
+ }
+
+ /* test for holes by LBT */
+ if (S_ISREG(st.st_mode)) {
+ if (st.st_blocks * 512 < st.st_size) {
+ fprintf(stderr,
+ _("%s: Skipping file %s - it appears "
+ "to have holes.\n"),
+ progname, special);
+ return -1;
+ }
+ }
+
swap_pagesize = swap_get_pagesize(special);
if (swap_pagesize && (getpagesize() != swap_pagesize)) {
if (verbose)
@@ -400,30 +425,6 @@ do_swapon(const char *orig_special, int prio, int canonic) {
return -1;
}
- /* people generally dislike this warning - now it is printed
- only when `verbose' is set */
- if (verbose) {
- int permMask = (S_ISBLK(st.st_mode) ? 07007 : 07077);
-
- if ((st.st_mode & permMask) != 0) {
- fprintf(stderr, _("%s: warning: %s has "
- "insecure permissions %04o, "
- "%04o suggested\n"),
- progname, special, st.st_mode & 07777,
- ~permMask & 0666);
- }
- }
-
- /* test for holes by LBT */
- if (S_ISREG(st.st_mode)) {
- if (st.st_blocks * 512 < st.st_size) {
- fprintf(stderr,
- _("%s: Skipping file %s - it appears "
- "to have holes.\n"),
- progname, special);
- return -1;
- }
- }
{
int flags = 0;