mirror of git://sourceware.org/git/glibc.git
[BZ #2061]
2005-12-15 Thomas Schwinge <tschwinge@gnu.org> [BZ #2061] * sysdeps/mach/hurd/xmknod.c (__xmknod): Handle S_IFREG.
This commit is contained in:
parent
7d9642f06f
commit
a25e7e9f72
|
|
@ -1,3 +1,8 @@
|
||||||
|
2005-12-15 Thomas Schwinge <tschwinge@gnu.org>
|
||||||
|
|
||||||
|
[BZ #2061]
|
||||||
|
* sysdeps/mach/hurd/xmknod.c (__xmknod): Handle S_IFREG.
|
||||||
|
|
||||||
2005-12-20 Roland McGrath <roland@redhat.com>
|
2005-12-20 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/ifreq.h: File removed.
|
* sysdeps/unix/sysv/linux/ifreq.h: File removed.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
/* Copyright (C) 1991,92,93,94,95,96,99,2002 Free Software Foundation, Inc.
|
/* Copyright (C) 1991,1992,1993,1994,1995,1996,1999,2002,2005
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
|
@ -57,13 +58,18 @@ __xmknod (int vers, const char *file_name, mode_t mode, dev_t *dev)
|
||||||
translator = _HURD_FIFO;
|
translator = _HURD_FIFO;
|
||||||
len = sizeof (_HURD_FIFO);
|
len = sizeof (_HURD_FIFO);
|
||||||
}
|
}
|
||||||
|
else if (S_ISREG (mode))
|
||||||
|
{
|
||||||
|
translator = NULL;
|
||||||
|
len = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! S_ISFIFO (mode))
|
if (translator != NULL && ! S_ISFIFO (mode))
|
||||||
{
|
{
|
||||||
/* We set the translator to "ifmt\0major\0minor\0", where IFMT
|
/* We set the translator to "ifmt\0major\0minor\0", where IFMT
|
||||||
depends on the S_IFMT bits of our MODE argument, and MAJOR and
|
depends on the S_IFMT bits of our MODE argument, and MAJOR and
|
||||||
|
|
@ -89,7 +95,7 @@ __xmknod (int vers, const char *file_name, mode_t mode, dev_t *dev)
|
||||||
/* Create a new, unlinked node in the target directory. */
|
/* Create a new, unlinked node in the target directory. */
|
||||||
err = __dir_mkfile (dir, O_WRITE, (mode & ~S_IFMT) & ~_hurd_umask, &node);
|
err = __dir_mkfile (dir, O_WRITE, (mode & ~S_IFMT) & ~_hurd_umask, &node);
|
||||||
|
|
||||||
if (! err)
|
if (! err && translator != NULL)
|
||||||
/* Set the node's translator to make it a device. */
|
/* Set the node's translator to make it a device. */
|
||||||
err = __file_set_translator (node,
|
err = __file_set_translator (node,
|
||||||
FS_TRANS_EXCL | FS_TRANS_SET,
|
FS_TRANS_EXCL | FS_TRANS_SET,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue