You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
877 B
21 lines
877 B
diff --git a/lib/system.h b/lib/system.h |
|
index ef46267..e7f531c 100644 |
|
--- a/lib/system.h |
|
+++ b/lib/system.h |
|
@@ -389,9 +389,16 @@ extern int errno; |
|
# define ST_NBLOCKSIZE 512 |
|
#endif |
|
|
|
+/* Network Appliance file systems store small files directly in the |
|
+ inode if st_size <= 64; in this case the number of blocks can be |
|
+ zero. Perhaps other file systems have similar problems; so, |
|
+ somewhat arbitrarily, do not consider a file to be sparse if |
|
+ it has no blocks but st_size < ST_NBLOCKSIZE. */ |
|
#define ST_IS_SPARSE(st) \ |
|
(ST_NBLOCKS (st) \ |
|
- < ((st).st_size / ST_NBLOCKSIZE + ((st).st_size % ST_NBLOCKSIZE != 0))) |
|
+ < ((st).st_size / ST_NBLOCKSIZE \ |
|
+ + ((st).st_size % ST_NBLOCKSIZE != 0 \ |
|
+ && (st).st_size / ST_NBLOCKSIZE != 0))) |
|
|
|
/* Declare standard functions. */
|
|
|