#
PKG_MAJOR=2
PKG_MINOR=3
-PKG_REVISION=9
+PKG_REVISION=10
PKG_BUILD=0
-xfsprogs (2.3.9-1) unstable; urgency=low
+xfsprogs (2.3.10-1) unstable; urgency=low
* New upstream release
- -- Nathan Scott <nathans@debian.org> Tue, 31 Dec 2002 10:31:04 +1100
-
-xfsprogs (2.3.7-1) unstable; urgency=low
-
- * New upstream release
-
- -- Nathan Scott <nathans@debian.org> Thu, 14 Nov 2002 17:42:22 +1100
+ -- Nathan Scott <nathans@debian.org> Mon, 17 Feb 2003 14:52:20 +1100
xfsprogs (2.3.6-1) unstable; urgency=low
+xfsprogs-2.3.10 (17 February 2002)
+ - Fix a divide-by-zero error in mkfs with certain stripe unit
+ and/or width options specified.
+ - Sync up user/kernel source in libxfs and headers.
+
xfsprogs-2.3.9 (31 December 2002)
- Additional xfs_repair check in v2 directory handling for blks
with no data entries (merged from IRIX), includes several
struct xfs_mount;
xfs_lsn_t xfs_log_done(struct xfs_mount *mp,
xfs_log_ticket_t ticket,
+ void **iclog,
uint flags);
int xfs_log_force(struct xfs_mount *mp,
xfs_lsn_t lsn,
int xfs_log_mount_finish(struct xfs_mount *mp, int);
void xfs_log_move_tail(struct xfs_mount *mp,
xfs_lsn_t tail_lsn);
-void xfs_log_notify(struct xfs_mount *mp,
- xfs_lsn_t lsn,
+int xfs_log_notify(struct xfs_mount *mp,
+ void *iclog,
xfs_log_callback_t *callback_entry);
+int xfs_log_release_iclog(struct xfs_mount *mp,
+ void *iclog_hndl);
int xfs_log_reserve(struct xfs_mount *mp,
int length,
int count,
uint (*iop_size)(xfs_log_item_t *);
void (*iop_format)(xfs_log_item_t *, struct xfs_log_iovec *);
void (*iop_pin)(xfs_log_item_t *);
- void (*iop_unpin)(xfs_log_item_t *);
+ void (*iop_unpin)(xfs_log_item_t *, int);
void (*iop_unpin_remove)(xfs_log_item_t *, struct xfs_trans *);
uint (*iop_trylock)(xfs_log_item_t *);
void (*iop_unlock)(xfs_log_item_t *);
#define IOP_SIZE(ip) (*(ip)->li_ops->iop_size)(ip)
#define IOP_FORMAT(ip,vp) (*(ip)->li_ops->iop_format)(ip, vp)
#define IOP_PIN(ip) (*(ip)->li_ops->iop_pin)(ip)
-#define IOP_UNPIN(ip) (*(ip)->li_ops->iop_unpin)(ip)
+#define IOP_UNPIN(ip, flags) (*(ip)->li_ops->iop_unpin)(ip, flags)
#define IOP_UNPIN_REMOVE(ip,tp) (*(ip)->li_ops->iop_unpin_remove)(ip, tp)
#define IOP_TRYLOCK(ip) (*(ip)->li_ops->iop_trylock)(ip)
#define IOP_UNLOCK(ip) (*(ip)->li_ops->iop_unlock)(ip)
#define XFS_LID_DIRTY 0x1
#define XFS_LID_PINNED 0x2
#define XFS_LID_SYNC_UNLOCK 0x4
+#define XFS_LID_BUF_STALE 0x8
/*
* This structure is used to maintain a chunk list of log_item_desc
retval = xfs_da_read_buf(iargs->trans, iargs->dp, 0, -1, &bp,
XFS_DATA_FORK);
if (retval)
- return(retval);
+ goto out;
ASSERT(bp != NULL);
memcpy(tmpbuffer, bp->data, XFS_LBSIZE(dp->i_mount));
leaf = (xfs_dir_leafblock_t *)tmpbuffer;
agcount = 8;
blflag = bsflag = slflag = ssflag = 0;
blocklog = blocksize = 0;
- sectorlog = BBSHIFT;
- sectorsize = BBSIZE;
+ sectorlog = XFS_MIN_SECTORSIZE_LOG;
+ sectorsize = XFS_MIN_SECTORSIZE;
lsectorlog = 0;
lsectorsize = 0;
agsize = daflag = dasize = dblocks = 0;
#ifdef EXPERIMENTAL_LARGE_SECTORS
if (!lsectorsize) {
- lsectorlog = BBSHIFT;
- lsectorsize = BBSIZE;
+ lsectorlog = XFS_MIN_SECTORSIZE_LOG;
+ lsectorsize = XFS_MIN_SECTORSIZE;
}
if (lsectorsize < XFS_MIN_SECTORSIZE ||
lsectorsize > XFS_MAX_SECTORSIZE || lsectorsize > sectorsize) {
usage();
}
#else
- if (sectorsize != BBSIZE) {
- fprintf(stderr, _("illegal sector size %d\n"),
- sectorsize);
+ if (sectorsize != XFS_MIN_SECTORSIZE ||
+ sectorlog != XFS_MIN_SECTORSIZE_LOG) {
+ fprintf(stderr, _("illegal sector size %d\n"), sectorsize);
usage();
}
- if (lsectorsize != BBSIZE && lsectorsize) {
+ if (lsectorsize != XFS_MIN_SECTORSIZE && lsectorsize) {
fprintf(stderr, _("illegal log sector size %d\n"), lsectorsize);
usage();
}
- lsectorlog = BBSHIFT;
- lsectorsize = BBSIZE;
+ lsectorlog = XFS_MIN_SECTORSIZE_LOG;
+ lsectorsize = XFS_MIN_SECTORSIZE;
#endif
if (!nvflag)
*/
if (tmp_agsize > XFS_AG_MAX_BLOCKS(blocklog))
tmp_agsize = ((agsize) / dsunit) * dsunit;
- if ((tmp_agsize >= XFS_AG_MIN_BLOCKS(blocklog)) &&
+ if ((tmp_agsize >= XFS_AG_MIN_BLOCKS(blocklog)) &&
(tmp_agsize <= XFS_AG_MAX_BLOCKS(blocklog)) &&
!daflag) {
agsize = tmp_agsize;
}
}
}
- if (((agsize % dswidth) == 0) && (agcount > 1)) {
+ if (dswidth && ((agsize % dswidth) == 0) && (agcount > 1)) {
/* This is a non-optimal configuration because all AGs
* start on the same disk in the stripe. Changing
* the AG size by one sunit will guarantee that this