]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
bump version to 1.3.14.
authorNathan Scott <nathans@sgi.com>
Wed, 5 Dec 2001 07:11:19 +0000 (07:11 +0000)
committerNathan Scott <nathans@sgi.com>
Wed, 5 Dec 2001 07:11:19 +0000 (07:11 +0000)
VERSION
debian/changelog
doc/CHANGES
growfs/xfs_growfs.c
include/xfs_mount.h
libxfs/xfs.h
libxfs/xfs_rtalloc.c
man/man8/xfs_growfs.8
mkfs/xfs_mkfs.c

diff --git a/VERSION b/VERSION
index 14f60de698eba25411df66578e55812dfebc9f77..a2a5b896e6d61cc67925fcd597f5c1fe78e52606 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -3,5 +3,5 @@
 #
 PKG_MAJOR=1
 PKG_MINOR=3
-PKG_REVISION=13
+PKG_REVISION=14
 PKG_BUILD=0
index 2eb882a208028ba9cd64822c82c0758f9ab9a980..46db6e36d4f07969c538646dc6035944b04798ec 100644 (file)
@@ -1,3 +1,10 @@
+xfsprogs (1.3.14-1) unstable; urgency=low
+
+ * Fix minor package version numbering issue (closes: #117545)
+ * Fix bug in mkfs.xfs device size cross-check for realtime device
+
+ -- Nathan Scott <nathans@debian.org>  Wed,  5 Dec 2001 17:13:06 +1100
+
 xfsprogs (1.3.13-0) unstable; urgency=low
 
   * New upstream release
index 53175596605b16d9ed146cb632bed3ee2092a57e..e6f4a02f5123947c6a51370bd0287a8884aa087d 100644 (file)
@@ -1,3 +1,11 @@
+xfsprogs-1.3.14 (05 December 2001)
+       - fix minor debian package version numbering issue
+       - add documentation for xfs_db(8) label/uuid commands
+       - automatic inode sizing code in mkfs.xfs has been removed
+         (restricting inodes to 32 bits) - Steve's recent kernel
+         changes mean this is no longer an issue
+       - fix bug in mkfs.xfs size cross-check for realtime device
+
 xfsprogs-1.3.13 (25 October 2001)
        - fix bug in mkfs for 1Tbyte + filesystems
        - sync with recent kernel changes - this does not affect
index 138f03c334bae0e6e74e917a1e5e509842e3f122..b078c1a1f028c691d69901e8a391cb5e991fe0a3 100644 (file)
@@ -79,24 +79,15 @@ report_info(
        int             dirversion,
        int             isint)
 {
-
-       int             inodebits;
-
-       inodebits = (libxfs_highbit32(geo.blocksize/geo.inodesize - 1) + 1)
-                 + (libxfs_highbit64(geo.agblocks - 1) + 1)
-                 + (libxfs_highbit64(geo.agcount - 1) + 1);
-
        printf("meta-data=%-22s isize=%-6d agcount=%d, agsize=%d blks\n"
               "data     =%-22s bsize=%-6d blocks=%lld, imaxpct=%d\n"
               "         =%-22s sunit=%-6d swidth=%d blks, unwritten=%d\n"
-              "         =%-22s imaxbits=%-6d\n"
               "naming   =version %-14d bsize=%-6d\n"
               "log      =%-22s bsize=%-6d blocks=%d\n"
               "realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n",
               mntpoint, geo.inodesize, geo.agcount, geo.agblocks,
               "", geo.blocksize, (long long)geo.datablocks, geo.imaxpct,
               "", geo.sunit, geo.swidth, unwritten,
-              "", inodebits,
               dirversion, geo.dirblocksize,
               isint ? "internal" : "external", geo.blocksize, geo.logblocks,
               geo.rtblocks ? "external" : "none",
@@ -186,7 +177,6 @@ main(int argc, char **argv)
        long                    esize;  /* new rt extent size */
        int                     ffd;    /* mount point file descriptor */
        xfs_fsop_geom_t         geo;    /* current fs geometry */
-       int                     Iflag;  /* force flag for big inode numbers */
        int                     iflag;  /* -i flag */
        int                     isint;  /* log is currently internal */
        int                     lflag;  /* -l flag */
@@ -204,10 +194,10 @@ main(int argc, char **argv)
 
        mtab = MOUNTED;
        progname = basename(argv[0]);
-       aflag = dflag = Iflag = iflag = lflag = mflag = nflag = rflag = xflag = 0;
+       aflag = dflag = iflag = lflag = mflag = nflag = rflag = xflag = 0;
        maxpct = esize = 0;
        dsize = lsize = rsize = 0LL;
-       while ((c = getopt(argc, argv, "dD:e:IilL:m:np:rR:t:xV")) != EOF) {
+       while ((c = getopt(argc, argv, "dD:e:ilL:m:np:rR:t:xV")) != EOF) {
                switch (c) {
                case 'D':
                        dsize = atoll(optarg);
@@ -219,9 +209,6 @@ main(int argc, char **argv)
                        esize = atol(optarg);
                        rflag = 1;
                        break;
-               case 'I':
-                       Iflag = 1;
-                       break;
                case 'i':
                        lflag = iflag = 1;
                        break;
@@ -333,7 +320,6 @@ main(int argc, char **argv)
        error = 0;
        if (dflag | aflag) {
                xfs_growfs_data_t       in;
-               int                     inodebits;
                __uint64_t              new_agcount;
 
                if (!mflag)
@@ -351,10 +337,6 @@ main(int argc, char **argv)
                new_agcount = dsize / geo.agblocks 
                           + (dsize % geo.agblocks != 0);
 
-               inodebits = (libxfs_highbit32(geo.blocksize/geo.inodesize - 1) + 1)
-                         + (libxfs_highbit64(geo.agblocks - 1) + 1)
-                         + (libxfs_highbit64(new_agcount - 1) + 1);
-
                if (!error && dsize < geo.datablocks) {
                        fprintf(stderr, "data size %lld too small,"
                                " old size is %lld\n",
@@ -368,14 +350,6 @@ main(int argc, char **argv)
                        if (mflag)
                                fprintf(stderr,
                                        "inode max pct unchanged, skipping\n");
-               } else if (!error && !Iflag 
-                               && inodebits > XFS_MAX_INODE_SIG_BITS) {
-                       fprintf(stderr,
-                               "warning: inode numbers would exceed %d "
-                               "significant bits (%d)\n"
-                               "         Use -I option to allow this\n",
-                               XFS_MAX_INODE_SIG_BITS, inodebits);
-                       error = 1;
                } else if (!error && !nflag) {
                        in.newblocks = (__u64)dsize;
                        in.imaxpct = (__u32)maxpct;
@@ -390,12 +364,6 @@ main(int argc, char **argv)
                                                progname, strerror(errno));
                                error = 1;
                        }
-                       if (inodebits > XFS_MAX_INODE_SIG_BITS) {
-                               fprintf(stderr,
-                                       "inode numbers exceed %d "
-                                       "significant bits (%d)\n",
-                                       XFS_MAX_INODE_SIG_BITS, inodebits);
-                       }
                }
        }
 
index 3f5207c68fd70b64d21a4c1c6129f348cb5a601a..11b8f32377ac3e8398d98c3dbfc74bdb4222cf61 100644 (file)
@@ -219,6 +219,7 @@ typedef struct xfs_mount {
        int                     m_bsize;        /* fs logical block size */
        xfs_agnumber_t          m_agfrotor;     /* last ag where space found */
        xfs_agnumber_t          m_agirotor;     /* last ag dir inode alloced */
+       xfs_agnumber_t          m_maxagi;       /* highest inode alloc group */
        int                     m_ihsize;       /* size of next field */
        struct xfs_ihash        *m_ihash;       /* fs private inode hash table*/
        struct xfs_inode        *m_inodes;      /* active inode list */
@@ -241,6 +242,7 @@ typedef struct xfs_mount {
        buftarg_t               m_logdev_targ;  /* ptr to log device */
        buftarg_t               m_rtdev_targ;   /* ptr to rt device */
        buftarg_t               *m_ddev_targp;  /* saves taking the address */
+#define m_rtdev_targp(m)(&(m)->m_rtdev_targ)
 #define m_dev          m_ddev_targ.dev
 #define m_logdev       m_logdev_targ.dev
 #define m_rtdev                m_rtdev_targ.dev
@@ -343,6 +345,8 @@ typedef struct xfs_mount {
 #define XFS_MOUNT_DFLT_IOSIZE          0x00001000      /* set default i/o size */
 #define XFS_MOUNT_OSYNCISDSYNC         0x00002000      /* treat o_sync like o_dsync */
 #define XFS_MOUNT_NOUUID       0x00004000      /* ignore uuid during mount */
+#define XFS_MOUNT_32BITINODES  0x00008000      /* do not create inodes above
+                                                * 32 bits in size */
 
 /*
  * Flags for m_cxfstype
@@ -487,6 +491,7 @@ struct xfs_buf      *xfs_getsb(xfs_mount_t *, int);
 void            xfs_freesb(xfs_mount_t *);
 void           _xfs_force_shutdown(struct xfs_mount *, int, char *, int);
 int            xfs_syncsub(xfs_mount_t *, int, int, int *);
+void           xfs_initialize_perag(xfs_mount_t *, int);
 void           xfs_xlatesb(void *, struct xfs_sb *, int, xfs_arch_t, __int64_t);
 
 /*
index 807e765c86e053f659d749cd8058de7a83abb563..23535234169b36b1b5acdf7c8d7807aa9a2ff098 100644 (file)
 #define xfs_buf_item_log_debug(bip,a,b)        ((void) 0)      /* debug only */
 #define xfs_validate_extents(e,n,f)    ((void) 0)      /* debug only */
 #define xfs_buf_relse(bp)              libxfs_putbuf(bp)
-#define xfs_read_buf(mp,x,blkno,len,f,bpp)     \
-       ( *(bpp) = libxfs_readbuf( (mp)->m_dev, (blkno), (len), 1), 0 )
+#define xfs_read_buf(mp,devp,blkno,len,f,bpp)  \
+       ( *(bpp) = libxfs_readbuf( *(dev_t*)devp, (blkno), (len), 1), 0 )
 
 
 /* transaction management */
@@ -238,6 +238,7 @@ typedef struct { dev_t dev; } buftarg_t;
 #define EFSCORRUPTED   990     /* Filesystem is corrupted */
 #define ktrace_t       void
 #define m_ddev_targp   m_dev
+#define m_rtdev_targp(m)(&(m)->m_rtdev)
 #define KERN_WARNING
 #define XFS_ERROR(e)   (e)
 #define XFS_TEST_ERROR(expr,a,b,c)     ( expr )
index 9b2615f3b796c19f2aea939587b6cf40514cd445..530ebed7a7317aa170a516795402ef0c59f737e6 100644 (file)
@@ -823,7 +823,7 @@ xfs_rtmount_init(
                        (unsigned long long) mp->m_sb.sb_rblocks);
                return XFS_ERROR(E2BIG);
        }
-       error = xfs_read_buf(mp, &mp->m_rtdev_targ, d - 1, 1, 0, &bp);
+       error = xfs_read_buf(mp, m_rtdev_targp(mp), d - 1, 1, 0, &bp);
        if (error) {
                printk(KERN_WARNING
                        "XFS: RT mount - xfs_read_buf returned %d\n", error);
index bf624b25a97ca2cf482c8557f7a72fc7e66c0b3d..355068f2d207b7441f536bf17051f4c6f444343d 100644 (file)
@@ -3,7 +3,7 @@
 xfs_growfs, xfs_info \- expand an XFS filesystem
 .SH SYNOPSIS
 .nf
-\f3xfs_growfs\f1 [ \f3\-dIilnrxV\f1 ] [ \f3\-D\f1 size ] [ \f3\-e\f1 rtextsize ]
+\f3xfs_growfs\f1 [ \f3\-dilnrxV\f1 ] [ \f3\-D\f1 size ] [ \f3\-e\f1 rtextsize ]
                [ \f3\-L\f1 size ] [ \f3\-m\f1 maxpct ] [ \f3-t\f1 mtab ]
                [ \f3\-R\f1 size ] mount-point
 \f3xfs_info\f1 [ \f3-t\f1 mtab ] mount-point
@@ -51,10 +51,6 @@ this is specified with
 .B \-r
 .BI extsize= nnnn.
 .TP
-.B \-I
-Allow new inode numbers to exceed 32 significant bits.
-(See CONSIDERATIONS below.)
-.TP
 .B \-i
 The new log is an internal log
 (inside the data section).
@@ -129,33 +125,8 @@ Filesystems normally occupy all of the space on the device where they
 reside.
 In order to grow a filesystem, it is necessary to provide added
 space for it to occupy.
-Therefore there must be at least one spare new
-disk partition available.
-Adding the space is done through the mechanism of
-logical volumes.
-.SH CONSIDERATIONS
-XFS uses 64-bit inode numbers internally; however, the number of
-significant bits in an inode number is 
-affected by filesystem geometry.  In
-practice, filesystem size and inode size are the predominant factors.
-The Linux kernel and most applications cannot currently handle
-inode numbers greater than 32 significant bits, so 
-.I xfs_growfs
-will issue a warning and fail if growing the filesystem will
-cause the significant bits in inode numbers to exceed 32 bits.
-This can be overwritten with the 
-.B \-I
-option.
-.PP
-If you anticipate significantly growing filesystems after using
-.I mkfs.xfs
-you should take into consideration this inode number growth
-as well,
-and keep the number of significant digits sufficiently small
-to allow for future growth.  On average, doubling the size
-of the inode will reduce significant bits by one, and doubling
-the size of the filesystem will increase significant bits
-by one.
+Therefore there must be at least one spare new disk partition available.
+Adding the space is often done through the use of a logical volume manager.
 .SH SEE ALSO
 mkfs.xfs(8),
 lvm(8),
index 0e23ef7955c8495bc298d75742c8c9f725d1aa6b..45e159c146ee2f072ca48acccd08a31dc466e0f1 100644 (file)
@@ -379,7 +379,6 @@ main(int argc, char **argv)
        int                     imaxpct;
        int                     imflag;
        int                     inodelog;
-       int                     inodebits;
        int                     inopblock;
        int                     ipflag;
        int                     isflag;
@@ -1516,67 +1515,6 @@ main(int argc, char **argv)
                }
        }
 
-#if 0
-       /*
-        * Check to see if inode number will be > 32 significant bits
-        * Note that libxfs_highbitXX returns 0 -> XX-1,
-        * so to get the bit count, add one to what we get.
-        */
-
-       inodebits = (libxfs_highbit32(blocksize/isize - 1) + 1)
-                 + (libxfs_highbit64(agsize - 1) + 1)
-                 + (libxfs_highbit64(agcount - 1) + 1);
-
-       if (inodebits > XFS_MAX_INODE_SIG_BITS) {
-
-               int new_isize;
-               int new_isize_ok;
-
-               new_isize = isize << (inodebits - XFS_MAX_INODE_SIG_BITS);
-
-               new_isize_ok = (new_isize <= blocksize / XFS_MIN_INODE_PERBLOCK
-                               && new_isize <= XFS_DINODE_MAX_SIZE);
-               
-               if (ilflag + ipflag + isflag == 0) {
-                       /*
-                        * If we didn't specify inode size, just bump it up
-                        * unless we can't go far enough.
-                        */
-
-                       if (new_isize_ok) {
-                               isize = new_isize;
-                               /* re-calc inodebits */
-                               inodebits = (libxfs_highbit32(blocksize/isize - 1) + 1)
-                                         + (libxfs_highbit64(agsize - 1) + 1)
-                                         + (libxfs_highbit64(agcount - 1) + 1);
-                               inodelog = libxfs_highbit32(isize);
-                               /* Let's not get too chatty, no fprintf here */
-                       } else {
-                               /*
-                                * Can't do nothin' for ya, man!
-                                * Don't bother changing isize at all,
-                                * one bit over is as bad as 20.
-                                */
-                               fprintf(stderr,
-                                       "warning: inode numbers exceed %d "
-                                       " significant bits (%d)\n",
-                                       XFS_MAX_INODE_SIG_BITS, inodebits);
-                       }
-               } else {
-                       /* if isize specified, just warn the user */
-                       fprintf(stderr, 
-                               "warning: inode numbers exceed %d "
-                               "significant bits (%d)\n",
-                               XFS_MAX_INODE_SIG_BITS, inodebits);
-                       if (new_isize_ok) {
-                               fprintf(stderr,
-                                       "         increase inode size to %d to "
-                                       "avoid this\n", new_isize);
-                       }
-               }
-       }
-#endif
-
        protostring = setup_proto(protofile);
        bsize = 1 << (blocklog - BBSHIFT);
        buf = libxfs_getbuf(xi.ddev, XFS_SB_DADDR, 1);
@@ -1703,14 +1641,12 @@ main(int argc, char **argv)
                   "meta-data=%-22s isize=%-6d agcount=%lld, agsize=%lld blks\n"
                   "data     =%-22s bsize=%-6d blocks=%lld, imaxpct=%d\n"
                   "         =%-22s sunit=%-6d swidth=%d blks, unwritten=%d\n"
-                  "         =%-22s imaxbits=%-6d\n"
                   "naming   =version %-14d bsize=%-6d\n"
                   "log      =%-22s bsize=%-6d blocks=%lld\n"
                   "realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n",
                        dfile, isize, (long long)agcount, (long long)agsize,
                        "", blocksize, (long long)dblocks, sbp->sb_imax_pct,
                        "", dsunit, dswidth, extent_flagging,
-                       "", inodebits,
                        dirversion, dirversion == 1 ? blocksize : dirblocksize,
                        logfile, 1 << blocklog, (long long)logblocks,
                        rtfile, rtextblocks << blocklog,