Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()
authorRaja R Harinath <harinath@hurrynot.org>
Tue, 13 Jul 2010 09:02:00 +0000 (14:32 +0530)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Jul 2010 14:57:08 +0000 (07:57 -0700)
The original declaration was int, which seems to cause trouble on my
machine.  It causes spurious "filesystem boundary" errors when running
the testsuite.  The cause seems to be

  $ stat -c%d .
  2147549952

which is too large for a 32-bit int type.

Using the correct type, dev_t, solves the issue.  (Because I'm
paranoid and forgetful, I checked -- yes, Unix v7 had dev_t.)

Other uses of st_dev seem to be reasonably safe.   fill_stat_cache_info
truncates it to an 'unsigned int', but that value seems to be used only
to validate the cache, and only if USE_STDEV is defined.

Signed-off-by: Raja R Harinath <harinath@hurrynot.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
setup.c

diff --git a/setup.c b/setup.c
index 7e0460205dc1d15007849f367d21e999f2da044c..87c21f02e0e3bedb42305bbfe2b4223885d4250f 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -323,7 +323,8 @@ const char *setup_git_directory_gently(int *nongit_ok)
        const char *gitdirenv;
        const char *gitfile_dir;
        int len, offset, ceil_offset, root_len;
-       int current_device = 0, one_filesystem = 1;
+       dev_t current_device = 0;
+       int one_filesystem = 1;
        struct stat buf;
 
        /*