Mercurial > hg > xemacs-beta
comparison src/dired.c @ 5727:86d33ddc7fd6
Avoid EOVERFLOW from stat() calls due to overflowing inode numbers.
The btrfs filesystem now uses 64-bit inode numbers even on 32-bit systems.
This can lead to spurious stat() failures, where EOVERFLOW is returned because
the inode number does not fit into the 32-bit stat structure, even when the
caller is not interested in the inode number. This patch builds with
_FILE_OFFSET_BITS == 64 when possible, and deals with integers that may be
too large to fit into a Lisp fixnum. For more information, see xemacs-patches
message <CAHCOHQk_mPM6WgFChBsGafqhuazep6VED7swFoqfFXOV1r8org@mail.gmail.com>.
author | Jerry James <james@xemacs.org> |
---|---|
date | Wed, 06 Mar 2013 08:32:17 -0700 |
parents | 56144c8593a8 |
children | c30fdcab7bc8 |
comparison
equal
deleted
inserted
replaced
5726:179f4a9201b5 | 5727:86d33ddc7fd6 |
---|---|
925 gid = (s.st_gid != getegid ()) ? Qt : Qnil; | 925 gid = (s.st_gid != getegid ()) ? Qt : Qnil; |
926 #endif /* BSD4_2 or BSD4_3 */ | 926 #endif /* BSD4_2 or BSD4_3 */ |
927 | 927 |
928 RETURN_UNGCPRO (listn (12, | 928 RETURN_UNGCPRO (listn (12, |
929 mode, | 929 mode, |
930 make_fixnum (s.st_nlink), | 930 make_integer (s.st_nlink), |
931 make_fixnum (s.st_uid), | 931 make_integer (s.st_uid), |
932 make_fixnum (s.st_gid), | 932 make_integer (s.st_gid), |
933 make_time (s.st_atime), | 933 make_time (s.st_atime), |
934 make_time (s.st_mtime), | 934 make_time (s.st_mtime), |
935 make_time (s.st_ctime), | 935 make_time (s.st_ctime), |
936 size, | 936 size, |
937 modestring, | 937 modestring, |
938 gid, | 938 gid, |
939 make_fixnum (s.st_ino), | 939 make_integer (s.st_ino), |
940 make_fixnum (s.st_dev))); | 940 make_integer (s.st_dev))); |
941 } | 941 } |
942 | 942 |
943 | 943 |
944 /************************************************************************/ | 944 /************************************************************************/ |
945 /* initialization */ | 945 /* initialization */ |