diff options
author | Theodore Ts'o <tytso@mit.edu> | 2002-07-14 15:58:38 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2002-07-14 15:58:38 -0400 |
commit | 593c6ead7e3bca412eff2d17edad790de81cb0eb (patch) | |
tree | a08e113be6ce5f40f9656cd2263e41293ec5f9ec /lib/e2p/fgetversion.c | |
parent | f154d2f687e922f8444ef3050dc83f5d8e0e2178 (diff) | |
download | e2fsprogs-593c6ead7e3bca412eff2d17edad790de81cb0eb.tar.gz |
Various portability fixes which should help out HURD.
The iterate_on_dir function in libe2p has been changed to be more
general, so it relies less on the layout of struct dirent. We also
make sure the errno returned by the ioctl is returned by
fgetversion() and fsetversion().
Diffstat (limited to 'lib/e2p/fgetversion.c')
-rw-r--r-- | lib/e2p/fgetversion.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/e2p/fgetversion.c b/lib/e2p/fgetversion.c index b934c93e..404258a8 100644 --- a/lib/e2p/fgetversion.c +++ b/lib/e2p/fgetversion.c @@ -37,14 +37,18 @@ int fgetversion (const char * name, unsigned long * version) { #if HAVE_EXT2_IOCTLS - int fd, r, ver; + int fd, r, ver, save_errno = 0; fd = open (name, OPEN_FLAGS); if (fd == -1) - return - 1; + return -1; r = ioctl (fd, EXT2_IOC_GETVERSION, &ver); + if (r == -1) + save_errno = errno; *version = ver; close (fd); + if (save_errno) + errno = save_errno; return r; #else /* ! HAVE_EXT2_IOCTLS */ extern int errno; |