btrfs-progs: don't clobber errno in close_file_or_dir

Preserve the errno value for the caller in case closing happens in the
middle of eg. an ioctl and reporing the failure. The errors that could
happen in close/closedir do not bother us.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2018-01-25 13:37:13 +01:00
parent d7f906c23a
commit 24103f42ad

10
utils.c
View file

@ -1549,10 +1549,16 @@ int open_file_or_dir(const char *fname, DIR **dirstream)
void close_file_or_dir(int fd, DIR *dirstream)
{
if (dirstream)
int old_errno;
old_errno = errno;
if (dirstream) {
closedir(dirstream);
else if (fd >= 0)
} else if (fd >= 0) {
close(fd);
}
errno = old_errno;
}
int get_device_info(int fd, u64 devid,