summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2009-01-25 19:02:23 +0100
committerTobias Klauser <tklauser@distanz.ch>2009-01-25 19:02:23 +0100
commit7a1d9eb8e5c067d3e7935c8ca3aaf0535ed90661 (patch)
treea8853148f77d63ad4d4c686fb97071f293b041ba
parentc954106d4388fd46f3387aae01e26ab0da993f9c (diff)
Make sure that st_blksize is greater than 0
-rw-r--r--inotail.c3
-rw-r--r--inotail.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/inotail.c b/inotail.c
index 441db98..53101a8 100644
--- a/inotail.c
+++ b/inotail.c
@@ -565,7 +565,8 @@ static int tail_file(struct file_struct *f, unsigned long n_units, mode_t mode,
}
f->size = finfo.st_size;
- f->blksize = finfo.st_blksize; /* TODO: Can this value be 0? */
+ if (likely(finfo.st_blksize > 0))
+ f->blksize = finfo.st_blksize;
if (mode == M_LINES)
offset = lines_to_offset(f, n_units);
diff --git a/inotail.h b/inotail.h
index c733943..d483e02 100644
--- a/inotail.h
+++ b/inotail.h
@@ -38,8 +38,10 @@ struct file_struct {
#define is_digit(c) ((c) >= '0' && (c) <= '9')
#ifdef __GNUC__
+# define likely(x) __builtin_expect(!!(x), 1)
# define unlikely(x) __builtin_expect(!!(x), 0)
#else
+# define likely(x) (x)
# define unlikely(x) (x)
#endif /* __GNUC__ */