osdep: Less restrictive F_SEFL in qemu_dup_flags()
qemu_dup_flags() currently limits the flags that can be set on the fcntl() F_SETFL call to those that we currently know can be set with fcntl() F_SETFL. The problem with this is that it will prevent use of new flags in the future without a code update. This patch relaxes the checking and lets fcntl() determine the flags it can set. Signed-off-by: Corey Bryant <coreyb@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
9dfa9f5930
commit
3b6eda2f57
12
osdep.c
12
osdep.c
@ -88,7 +88,6 @@ static int qemu_dup_flags(int fd, int flags)
|
||||
int ret;
|
||||
int serrno;
|
||||
int dup_flags;
|
||||
int setfl_flags;
|
||||
|
||||
#ifdef F_DUPFD_CLOEXEC
|
||||
ret = fcntl(fd, F_DUPFD_CLOEXEC, 0);
|
||||
@ -113,16 +112,7 @@ static int qemu_dup_flags(int fd, int flags)
|
||||
}
|
||||
|
||||
/* Set/unset flags that we can with fcntl */
|
||||
setfl_flags = O_APPEND | O_ASYNC | O_NONBLOCK;
|
||||
#ifdef O_NOATIME
|
||||
setfl_flags |= O_NOATIME;
|
||||
#endif
|
||||
#ifdef O_DIRECT
|
||||
setfl_flags |= O_DIRECT;
|
||||
#endif
|
||||
dup_flags &= ~setfl_flags;
|
||||
dup_flags |= (flags & setfl_flags);
|
||||
if (fcntl(ret, F_SETFL, dup_flags) == -1) {
|
||||
if (fcntl(ret, F_SETFL, flags) == -1) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user