diff options
Diffstat (limited to 'filesystems/progsreiserfs/files/patch-libdal_file.c')
-rw-r--r-- | filesystems/progsreiserfs/files/patch-libdal_file.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/filesystems/progsreiserfs/files/patch-libdal_file.c b/filesystems/progsreiserfs/files/patch-libdal_file.c new file mode 100644 index 000000000000..76a7926d532f --- /dev/null +++ b/filesystems/progsreiserfs/files/patch-libdal_file.c @@ -0,0 +1,26 @@ +--- libdal/file.c.orig 2002-12-12 12:32:34 UTC ++++ libdal/file.c +@@ -14,6 +14,7 @@ + + #if defined(__freebsd__) + # define O_LARGEFILE 0 ++# include <sys/disk.h> + #endif + + #ifndef DJGPP +@@ -154,6 +155,15 @@ static count_t file_len(dal_t *dal) { + + #endif + ++#ifdef DIOCGMEDIASIZE ++ ++ if (ioctl(*((int *)dal->entity), DIOCGMEDIASIZE, &size) >= 0) ++ return (count_t)(size / dal->blocksize); ++ ++ file_save_error(dal); ++ ++#endif ++ + if ((max_off = lseek(*((int *)dal->entity), 0, SEEK_END)) == (off_t)-1) { + file_save_error(dal); + return 0; |