[PATCH] Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()

Subsystems: the rest

DORMANTno replies

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()

From: Raja R Harinath <hidden>
Date: 2016-06-15 22:49:07

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

Re: [PATCH] Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:49:07

On Tue, Jul 13, 2010 at 09:02, Raja R Harinath [off-list ref] wrote:
The original declaration was int, which seems to cause trouble on my
machine.
What OS/architecture is your machine running?

Re: [PATCH] Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()

From: Raja R Harinath <hidden>
Date: 2016-06-15 22:49:07

Hi,

Ævar Arnfjörð Bjarmason [off-list ref] writes:
On Tue, Jul 13, 2010 at 09:02, Raja R Harinath [off-list ref] wrote:
quoted
The original declaration was int, which seems to cause trouble on my
machine.
What OS/architecture is your machine running?
Nothing fancy

  $ uname -a
  Linux hariville.hurrynot.org 2.6.35-rc3-00397-g123f94f #146 SMP PREEMPT Mon Jul 5 15:50:47 IST 2010 x86_64 GNU/Linux

  $ df .
  Filesystem           1K-blocks      Used Available Use% Mounted on
  /dev/sda1            959314384 389150456 521433560  43% /

- Hari
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help