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.
22 lines
877 B
22 lines
877 B
7 years ago
|
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. */
|