*/
memset(&xlog, 0, sizeof(struct xlog));
mp->m_log = &xlog;
- c = xlog_is_dirty(mp, mp->m_log, &xargs);
+ c = xlog_is_dirty(mp, mp->m_log);
if (!duplicate) {
if (c == 1) {
do_log(_(
if (!metadump.obfuscate && !metadump.zero_stale_data)
goto done;
- dirty = xlog_is_dirty(mp, &log, &x);
+ dirty = xlog_is_dirty(mp, &log);
switch (dirty) {
case 0:
if (iocur_top->data) { /* best effort */
struct xlog log;
- if (xlog_is_dirty(mp, &log, &x))
+ if (xlog_is_dirty(mp, &log))
metadump.dirty_log = true;
}
pop_cur();
libxfs_buftarg_init(mp, x.ddev, x.logdev, x.rtdev);
- dirty = xlog_is_dirty(mp, mp->m_log, &x);
+ dirty = xlog_is_dirty(mp, mp->m_log);
if (dirty == -1) {
dbprintf(_("ERROR: cannot find log head/tail, run xfs_repair\n"));
return 0;
long long logBBsize; /* size of log subvolume (BBs) */
/* (blocks allocated for use as
* log is stored in mount structure) */
- long long logBBstart; /* start block of log subvolume (BBs) */
long long rtsize; /* size of realtime subvolume (BBs) */
int dbsize; /* data subvolume device blksize */
int lbsize; /* log subvolume device blksize */
/* libxfs parameters */
extern libxfs_init_t x;
-void xlog_init(struct xfs_mount *mp, struct xlog *log, libxfs_init_t *x);
-int xlog_is_dirty(struct xfs_mount *mp, struct xlog *log, libxfs_init_t *x);
+void xlog_init(struct xfs_mount *mp, struct xlog *log);
+int xlog_is_dirty(struct xfs_mount *mp, struct xlog *log);
extern struct xfs_buf *xlog_get_bp(struct xlog *, int);
extern int xlog_bread(struct xlog *log, xfs_daddr_t blk_no, int nbblks,
a->dfd = a->logfd = a->rtfd = -1;
a->ddev = a->logdev = a->rtdev = 0;
a->dsize = a->lbsize = a->rtbsize = 0;
- a->dbsize = a->logBBsize = a->logBBstart = a->rtsize = 0;
+ a->dbsize = a->logBBsize = a->rtsize = 0;
flags = (a->isreadonly | a->isdirect);
void
xlog_init(
struct xfs_mount *mp,
- struct xlog *log,
- libxfs_init_t *x)
+ struct xlog *log)
{
- memset(log, 0, sizeof(*log));
+ unsigned int log_sect_size = BBSIZE;
- /* We (re-)init members of libxfs_init_t here? really? */
- x->logBBsize = XFS_FSB_TO_BB(mp, mp->m_sb.sb_logblocks);
- x->logBBstart = XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart);
- x->lbsize = BBSIZE;
- if (xfs_has_sector(mp))
- x->lbsize <<= (mp->m_sb.sb_logsectlog - BBSHIFT);
+ memset(log, 0, sizeof(*log));
log->l_dev = mp->m_logdev_targp;
- log->l_logBBsize = x->logBBsize;
- log->l_logBBstart = x->logBBstart;
- log->l_sectBBsize = BTOBB(x->lbsize);
+ log->l_logBBsize = XFS_FSB_TO_BB(mp, mp->m_sb.sb_logblocks);
+ log->l_logBBstart = XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart);
+ if (xfs_has_sector(mp))
+ log_sect_size <<= (mp->m_sb.sb_logsectlog - BBSHIFT);
+ log->l_sectBBsize = BTOBB(log_sect_size);
log->l_mp = mp;
if (xfs_has_sector(mp)) {
log->l_sectbb_log = mp->m_sb.sb_logsectlog - BBSHIFT;
int
xlog_is_dirty(
struct xfs_mount *mp,
- struct xlog *log,
- libxfs_init_t *x)
+ struct xlog *log)
{
int error;
xfs_daddr_t head_blk, tail_blk;
- xlog_init(mp, log, x);
+ xlog_init(mp, log);
error = xlog_find_tail(log, &head_blk, &tail_blk);
if (error) {
mp->m_features |= libxfs_sb_version_to_features(&mp->m_sb);
mp->m_blkbb_log = sb->sb_blocklog - BBSHIFT;
- xlog_init(mp, log, &x);
+ xlog_init(mp, log);
if (!x.logname && sb->sb_logstart == 0) {
fprintf(stderr, _(" external log device not specified\n\n"));
xfs_daddr_t tail_blk;
struct xlog *log = mp->m_log;
- xlog_init(mp, mp->m_log, &x);
+ xlog_init(mp, mp->m_log);
/*
* Find the log head and tail and alert the user to the situation if the