Bruce,

In a previous version, we implemented a change to use ioctl's
to gather information to ultimately calculate the device size.
However, we have found that a value returned by one of the
ioctl's isn't always correct.  This affected mkfs.jfs and fsck.jfs.
We took that ioctl out and use another method to calculate
device size.  The change will be in 1.0.16, our next drop.

I don't know if that is the problem you are having, but it sounds
like it might be.  Included is a patch to jfsutils-1.0.15/libfs/devices.c.
Please apply it, and from jfsutils-1.0.15/, run 'make clean' and
'make' to rebuild mkfs.jfs and fsck.jfs with the new function.

If this does not solve your problem, please send me the
output from running mkfs.jfs.

Thanks.

Barry Arndt
[EMAIL PROTECTED]
IBM Linux Technology Center
JFS for Linux http://oss.software.ibm.com/jfs


--- devices.c.bak Mon Jan 28 16:38:53 2002
+++ devices.c     Wed Mar  6 10:49:46 2002
@@ -19,6 +19,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include "jfs_types.h"
+#include "jfs_filsys.h"

 #include <string.h>
 #include <stdio.h>
@@ -31,9 +32,6 @@
 #if defined(__linux__) && defined(_IO) && !defined(BLKGETSIZE)
 #define BLKGETSIZE _IO(0x12,96)    /* return device size (sectors) */
 #endif
-#if defined(__linux__) && defined(_IO) && !defined(BLKSSZGET)
-#define BLKSSZGET _IO(0x12,104)    /* return sector size (bytes) */
-#endif

 /*
  * NAME: ujfs_get_dev_size
@@ -67,19 +65,14 @@
     char    Test_Byte;                   /* used to validate a position that we 
successfully lseek'ed to. */

 #ifdef BLKGETSIZE
-#ifdef BLKSSZGET
     unsigned long  num_sectors = 0;
-    unsigned long  sector_size = 0;

     if (ioctl(device, BLKGETSIZE, &num_sectors) >= 0) {
-      if (ioctl(device, BLKSSZGET, &sector_size) >= 0) {
-        /* for now, keep size as multiple of 1024,
-           not 512, so eliminate any odd sector.   */
-        *size = (int64_t)sector_size * (int64_t)((num_sectors/2)*2);
-        return NO_ERROR;
-      }
+      /* for now, keep size as multiple of 1024,
+         not 512, so eliminate any odd sector.   */
+      *size = PBSIZE * (int64_t)((num_sectors/2)*2);
+      return NO_ERROR;
     }
-#endif
 #endif

     /* If the ioctl above fails or is undefined, use a binary search to find the last






Bruce Wilkin <[EMAIL PROTECTED]>@www-124.southbury.usf.ibm.com on
03-05-2002 10:15:00 AM

Sent by:    [EMAIL PROTECTED]


To:    [EMAIL PROTECTED]
cc:
Subject:    [Jfs-discussion] file system size limit? > 1TB mkfs.jfs failed



Hello, I'd appreciate any help or suggestions with this.

OS    : Suse 7.3
JFS   : 1.0.5
kernel: 2.4.10

Trying to create a JFS (or other) fs on a RAID 5 using 8 160GB drives.
I've heard that the kernel should be able to address up to 2 TB. Mkfs.jfs
reports that the filesystem was not created. TIA.

- Bruce Wilkin
_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion


_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to