libbb: add xfstat function

function                                             old     new   delta
xfstat                                                 -      25     +25
mkfs_ext2_main                                      2421    2423      +2
mkfs_reiser_main                                    1197    1194      -3
next                                                 312     307      -5
ar_main                                              533     522     -11
mkfs_minix_main                                     2938    2924     -14
mkfs_vfat_main                                      1511    1495     -16
writeTarFile                                         272     255     -17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/6 up/down: 27/-66)            Total: -39 bytes

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This commit is contained in:
Denys Vlasenko
2010-08-31 12:42:06 +02:00
parent 4e7dd3c363
commit 8d3e225a2d
13 changed files with 29 additions and 21 deletions

View File

@@ -4989,9 +4989,13 @@ noclobberopen(const char *fname)
* revealed that it was a regular file, and the file has not been
* replaced, return the file descriptor.
*/
if (fstat(fd, &finfo2) == 0 && !S_ISREG(finfo2.st_mode)
&& finfo.st_dev == finfo2.st_dev && finfo.st_ino == finfo2.st_ino)
if (fstat(fd, &finfo2) == 0
&& !S_ISREG(finfo2.st_mode)
&& finfo.st_dev == finfo2.st_dev
&& finfo.st_ino == finfo2.st_ino
) {
return fd;
}
/* The file has been replaced. badness. */
close(fd);