git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()
@ 2010-07-13  9:02 Raja R Harinath
  2010-07-13  9:26 ` Ævar Arnfjörð Bjarmason
  2010-07-13 20:55 ` Junio C Hamano
  0 siblings, 2 replies; 6+ messages in thread
From: Raja R Harinath @ 2010-07-13  9:02 UTC (permalink / raw)
  To: git; +Cc: Raja R Harinath

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.
---
 setup.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/setup.c b/setup.c
index 7e04602..87c21f0 100644
--- 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;
 
 	/*
-- 
1.7.2.rc2.11.g03e33

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-07-14 14:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-13  9:02 [PATCH] Use dev_t for device id (st_dev) from stat in setup_git_directory_gently() Raja R Harinath
2010-07-13  9:26 ` Ævar Arnfjörð Bjarmason
2010-07-13 12:01   ` Raja R Harinath
2010-07-13 20:55 ` Junio C Hamano
2010-07-14  1:08   ` Raja R Harinath
2010-07-14 14:55     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).