From: "Lukáš Czerner" <lczerner@redhat.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: tytso@mit.edu, linux-ext4@vger.kernel.org
Subject: Re: [PATCH 05/37] debugfs: teach logdump to deal with 64bit revoke tables
Date: Fri, 2 May 2014 13:38:04 +0200 (CEST) [thread overview]
Message-ID: <alpine.LFD.2.00.1405021330460.2154@localhost.localdomain> (raw)
In-Reply-To: <20140501231255.31890.67291.stgit@birch.djwong.org>
On Thu, 1 May 2014, Darrick J. Wong wrote:
> Date: Thu, 01 May 2014 16:12:55 -0700
> From: Darrick J. Wong <darrick.wong@oracle.com>
> To: tytso@mit.edu, darrick.wong@oracle.com
> Cc: linux-ext4@vger.kernel.org
> Subject: [PATCH 05/37] debugfs: teach logdump to deal with 64bit revoke tables
>
> The logdump command doesn't know how to deal with revoke tables in
> 64bit journals, so teach it to do this.
>
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
> debugfs/logdump.c | 20 ++++-
> tests/f_jnl_64bit/expect.0 | 171 --------------------------------------------
> 2 files changed, 15 insertions(+), 176 deletions(-)
>
>
> diff --git a/debugfs/logdump.c b/debugfs/logdump.c
> index 2d0efaf..8b9dc5b 100644
> --- a/debugfs/logdump.c
> +++ b/debugfs/logdump.c
> @@ -526,28 +526,38 @@ static void dump_revoke_block(FILE *out_file, char *buf,
> {
> int offset, max;
> journal_revoke_header_t *header;
> - unsigned int *entry, rblock;
> + unsigned int *entry;
> + unsigned long long *bentry, rblock;
> + int tag_size = sizeof(*entry);
>
> if (dump_all)
> fprintf(out_file, "Dumping revoke block, sequence %u, at "
> "block %u:\n", transaction, blocknr);
>
> + if (be32_to_cpu(jsb->s_feature_incompat) & JFS_FEATURE_INCOMPAT_64BIT)
> + tag_size = sizeof(*bentry);
> +
> header = (journal_revoke_header_t *) buf;
> offset = sizeof(journal_revoke_header_t);
> max = be32_to_cpu(header->r_count);
>
> while (offset < max) {
> - entry = (unsigned int *) (buf + offset);
> - rblock = be32_to_cpu(*entry);
> + if (tag_size == sizeof(*entry)) {
> + entry = (unsigned int *) (buf + offset);
> + rblock = be32_to_cpu(*entry);
> + } else {
> + bentry = (unsigned long long *)(buf + offset);
> + rblock = ext2fs_be64_to_cpu(*bentry);
> + }
I wonder whether we really need to have bentry and entry since those
are just pointers and should be of the same size regardless of what
they are pointing at.
Would not it be better from the readability pov ? Otherwise it looks
good.
Thanks!
-Lukas
> if (dump_all || rblock == block_to_dump) {
> - fprintf(out_file, " Revoke FS block %u", rblock);
> + fprintf(out_file, " Revoke FS block %llu", rblock);
> if (dump_all)
> fprintf(out_file, "\n");
> else
> fprintf(out_file," at block %u, sequence %u\n",
> blocknr, transaction);
> }
> - offset += 4;
> + offset += tag_size;
> }
> }
>
> diff --git a/tests/f_jnl_64bit/expect.0 b/tests/f_jnl_64bit/expect.0
> index 2007f03..5cef2d8 100644
> --- a/tests/f_jnl_64bit/expect.0
> +++ b/tests/f_jnl_64bit/expect.0
> @@ -1,189 +1,97 @@
> Journal starts at block 67, transaction 32
> Found expected sequence 32, type 5 (revoke table) at block 67
> Dumping revoke block, sequence 32, at block 67:
> - Revoke FS block 0
> Revoke FS block 1536
> - Revoke FS block 0
> Revoke FS block 1472
> - Revoke FS block 0
> Revoke FS block 1473
> - Revoke FS block 0
> Revoke FS block 1474
> - Revoke FS block 0
> Revoke FS block 1475
> - Revoke FS block 0
> Revoke FS block 1476
> - Revoke FS block 0
> Revoke FS block 1541
> - Revoke FS block 0
> Revoke FS block 1477
> - Revoke FS block 0
> Revoke FS block 1478
> - Revoke FS block 0
> Revoke FS block 1479
> - Revoke FS block 0
> Revoke FS block 1480
> - Revoke FS block 0
> Revoke FS block 1481
> - Revoke FS block 0
> Revoke FS block 1482
> - Revoke FS block 0
> Revoke FS block 1483
> - Revoke FS block 0
> Revoke FS block 1484
> - Revoke FS block 0
> Revoke FS block 1485
> - Revoke FS block 0
> Revoke FS block 1486
> - Revoke FS block 0
> Revoke FS block 1487
> - Revoke FS block 0
> Revoke FS block 1488
> - Revoke FS block 0
> Revoke FS block 1489
> - Revoke FS block 0
> Revoke FS block 1490
> - Revoke FS block 0
> Revoke FS block 1491
> - Revoke FS block 0
> Revoke FS block 1556
> - Revoke FS block 0
> Revoke FS block 1492
> - Revoke FS block 0
> Revoke FS block 1493
> - Revoke FS block 0
> Revoke FS block 1429
> - Revoke FS block 0
> Revoke FS block 1494
> - Revoke FS block 0
> Revoke FS block 1495
> - Revoke FS block 0
> Revoke FS block 1496
> - Revoke FS block 0
> Revoke FS block 1432
> - Revoke FS block 0
> Revoke FS block 1497
> - Revoke FS block 0
> Revoke FS block 1498
> - Revoke FS block 0
> Revoke FS block 1434
> - Revoke FS block 0
> Revoke FS block 1499
> - Revoke FS block 0
> Revoke FS block 1435
> - Revoke FS block 0
> Revoke FS block 1500
> - Revoke FS block 0
> Revoke FS block 1501
> - Revoke FS block 0
> Revoke FS block 1502
> - Revoke FS block 0
> Revoke FS block 1503
> - Revoke FS block 0
> Revoke FS block 1504
> - Revoke FS block 0
> Revoke FS block 1505
> - Revoke FS block 0
> Revoke FS block 1506
> - Revoke FS block 0
> Revoke FS block 1442
> - Revoke FS block 0
> Revoke FS block 1507
> - Revoke FS block 0
> Revoke FS block 1508
> - Revoke FS block 0
> Revoke FS block 1444
> - Revoke FS block 0
> Revoke FS block 1509
> - Revoke FS block 0
> Revoke FS block 1445
> - Revoke FS block 0
> Revoke FS block 1510
> - Revoke FS block 0
> Revoke FS block 1511
> - Revoke FS block 0
> Revoke FS block 1512
> - Revoke FS block 0
> Revoke FS block 1513
> - Revoke FS block 0
> Revoke FS block 1449
> - Revoke FS block 0
> Revoke FS block 1514
> - Revoke FS block 0
> Revoke FS block 1515
> - Revoke FS block 0
> Revoke FS block 1516
> - Revoke FS block 0
> Revoke FS block 1517
> - Revoke FS block 0
> Revoke FS block 1453
> - Revoke FS block 0
> Revoke FS block 1518
> - Revoke FS block 0
> Revoke FS block 1519
> - Revoke FS block 0
> Revoke FS block 1520
> - Revoke FS block 0
> Revoke FS block 1456
> - Revoke FS block 0
> Revoke FS block 1521
> - Revoke FS block 0
> Revoke FS block 1457
> - Revoke FS block 0
> Revoke FS block 1522
> - Revoke FS block 0
> Revoke FS block 1458
> - Revoke FS block 0
> Revoke FS block 1523
> - Revoke FS block 0
> Revoke FS block 1459
> - Revoke FS block 0
> Revoke FS block 1524
> - Revoke FS block 0
> Revoke FS block 1460
> - Revoke FS block 0
> Revoke FS block 1525
> - Revoke FS block 0
> Revoke FS block 1461
> - Revoke FS block 0
> Revoke FS block 1526
> - Revoke FS block 0
> Revoke FS block 1462
> - Revoke FS block 0
> Revoke FS block 1527
> - Revoke FS block 0
> Revoke FS block 1463
> - Revoke FS block 0
> Revoke FS block 1528
> - Revoke FS block 0
> Revoke FS block 1464
> - Revoke FS block 0
> Revoke FS block 1529
> - Revoke FS block 0
> Revoke FS block 1465
> - Revoke FS block 0
> Revoke FS block 1530
> - Revoke FS block 0
> Revoke FS block 1466
> - Revoke FS block 0
> Revoke FS block 1531
> - Revoke FS block 0
> Revoke FS block 1467
> - Revoke FS block 0
> Revoke FS block 1532
> - Revoke FS block 0
> Revoke FS block 1468
> - Revoke FS block 0
> Revoke FS block 1533
> - Revoke FS block 0
> Revoke FS block 1469
> - Revoke FS block 0
> Revoke FS block 1534
> - Revoke FS block 0
> Revoke FS block 1470
> - Revoke FS block 0
> Revoke FS block 1535
> - Revoke FS block 0
> Revoke FS block 1471
> Found expected sequence 32, type 1 (descriptor block) at block 68
> Dumping descriptor block, sequence 32, at block 68:
> @@ -323,163 +231,84 @@ Dumping descriptor block, sequence 32, at block 150:
> Found expected sequence 32, type 2 (commit block) at block 201
> Found expected sequence 33, type 5 (revoke table) at block 202
> Dumping revoke block, sequence 33, at block 202:
> - Revoke FS block 0
> Revoke FS block 1600
> - Revoke FS block 0
> Revoke FS block 1601
> - Revoke FS block 0
> Revoke FS block 1537
> - Revoke FS block 0
> Revoke FS block 1602
> - Revoke FS block 0
> Revoke FS block 1538
> - Revoke FS block 0
> Revoke FS block 1603
> - Revoke FS block 0
> Revoke FS block 1539
> - Revoke FS block 0
> Revoke FS block 1604
> - Revoke FS block 0
> Revoke FS block 1540
> - Revoke FS block 0
> Revoke FS block 1605
> - Revoke FS block 0
> Revoke FS block 1606
> - Revoke FS block 0
> Revoke FS block 1542
> - Revoke FS block 0
> Revoke FS block 1607
> - Revoke FS block 0
> Revoke FS block 1543
> - Revoke FS block 0
> Revoke FS block 1608
> - Revoke FS block 0
> Revoke FS block 1544
> - Revoke FS block 0
> Revoke FS block 1609
> - Revoke FS block 0
> Revoke FS block 1545
> - Revoke FS block 0
> Revoke FS block 1610
> - Revoke FS block 0
> Revoke FS block 1546
> - Revoke FS block 0
> Revoke FS block 1611
> - Revoke FS block 0
> Revoke FS block 1547
> - Revoke FS block 0
> Revoke FS block 1612
> - Revoke FS block 0
> Revoke FS block 1548
> - Revoke FS block 0
> Revoke FS block 1613
> - Revoke FS block 0
> Revoke FS block 1549
> - Revoke FS block 0
> Revoke FS block 1614
> - Revoke FS block 0
> Revoke FS block 1550
> - Revoke FS block 0
> Revoke FS block 1615
> - Revoke FS block 0
> Revoke FS block 1551
> - Revoke FS block 0
> Revoke FS block 1616
> - Revoke FS block 0
> Revoke FS block 1552
> - Revoke FS block 0
> Revoke FS block 1617
> - Revoke FS block 0
> Revoke FS block 1553
> - Revoke FS block 0
> Revoke FS block 1554
> - Revoke FS block 0
> Revoke FS block 1555
> - Revoke FS block 0
> Revoke FS block 1557
> - Revoke FS block 0
> Revoke FS block 1558
> - Revoke FS block 0
> Revoke FS block 1559
> - Revoke FS block 0
> Revoke FS block 1560
> - Revoke FS block 0
> Revoke FS block 1561
> - Revoke FS block 0
> Revoke FS block 1562
> - Revoke FS block 0
> Revoke FS block 1563
> - Revoke FS block 0
> Revoke FS block 1564
> - Revoke FS block 0
> Revoke FS block 1565
> - Revoke FS block 0
> Revoke FS block 1566
> - Revoke FS block 0
> Revoke FS block 1567
> - Revoke FS block 0
> Revoke FS block 1568
> - Revoke FS block 0
> Revoke FS block 1569
> - Revoke FS block 0
> Revoke FS block 1570
> - Revoke FS block 0
> Revoke FS block 1571
> - Revoke FS block 0
> Revoke FS block 1572
> - Revoke FS block 0
> Revoke FS block 1573
> - Revoke FS block 0
> Revoke FS block 1574
> - Revoke FS block 0
> Revoke FS block 1575
> - Revoke FS block 0
> Revoke FS block 1576
> - Revoke FS block 0
> Revoke FS block 1577
> - Revoke FS block 0
> Revoke FS block 1578
> - Revoke FS block 0
> Revoke FS block 1579
> - Revoke FS block 0
> Revoke FS block 1580
> - Revoke FS block 0
> Revoke FS block 1581
> - Revoke FS block 0
> Revoke FS block 1582
> - Revoke FS block 0
> Revoke FS block 1583
> - Revoke FS block 0
> Revoke FS block 1584
> - Revoke FS block 0
> Revoke FS block 1585
> - Revoke FS block 0
> Revoke FS block 1586
> - Revoke FS block 0
> Revoke FS block 1587
> - Revoke FS block 0
> Revoke FS block 1588
> - Revoke FS block 0
> Revoke FS block 1589
> - Revoke FS block 0
> Revoke FS block 1590
> - Revoke FS block 0
> Revoke FS block 1591
> - Revoke FS block 0
> Revoke FS block 1592
> - Revoke FS block 0
> Revoke FS block 1593
> - Revoke FS block 0
> Revoke FS block 1594
> - Revoke FS block 0
> Revoke FS block 1595
> - Revoke FS block 0
> Revoke FS block 1596
> - Revoke FS block 0
> Revoke FS block 1597
> - Revoke FS block 0
> Revoke FS block 1598
> - Revoke FS block 0
> Revoke FS block 1599
> Found expected sequence 33, type 1 (descriptor block) at block 203
> Dumping descriptor block, sequence 33, at block 203:
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2014-05-02 11:38 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-01 23:12 [PATCH 00/37] e2fsprogs patchbomb 5/14 Darrick J. Wong
2014-05-01 23:12 ` [PATCH 01/37] misc: create better-packaged static analysis reports Darrick J. Wong
2014-05-11 22:33 ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 02/37] misc: coverity fixes Darrick J. Wong
2014-05-02 11:17 ` Lukáš Czerner
2014-05-05 20:04 ` Darrick J. Wong
2014-05-11 22:40 ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 03/37] libext2fs: create sockets when populating filesystem Darrick J. Wong
2014-05-02 11:22 ` Lukáš Czerner
2014-05-05 20:08 ` Darrick J. Wong
2014-05-11 22:44 ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 04/37] mke2fs: always warn if 128-byte inode and inline_data Darrick J. Wong
2014-05-02 11:27 ` Lukáš Czerner
2014-05-05 20:10 ` Darrick J. Wong
2014-05-12 0:26 ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 05/37] debugfs: teach logdump to deal with 64bit revoke tables Darrick J. Wong
2014-05-02 11:38 ` Lukáš Czerner [this message]
2014-05-05 22:23 ` Darrick J. Wong
2014-05-06 11:35 ` Lukáš Czerner
2014-05-12 1:20 ` Theodore Ts'o
2014-05-01 23:13 ` [PATCH 06/37] debugfs: force logdump to display (old) journal contents Darrick J. Wong
2014-05-02 11:49 ` Lukáš Czerner
2014-05-06 0:24 ` Darrick J. Wong
2014-05-12 1:41 ` Theodore Ts'o
2014-05-12 3:31 ` Theodore Ts'o
2014-05-14 0:05 ` Darrick J. Wong
2014-05-01 23:13 ` [PATCH 07/37] resize2fs: fix check for collision between old GDT and superblock on sparse_super2 fs Darrick J. Wong
2014-05-12 3:35 ` Theodore Ts'o
2014-05-01 23:13 ` [PATCH 08/37] mke2fs: set gdt csum when creating packed fs Darrick J. Wong
2014-05-02 11:55 ` Lukáš Czerner
2014-05-12 4:22 ` Theodore Ts'o
2014-05-01 23:13 ` [PATCH 09/37] mke2fs: set error behavior at initialization time Darrick J. Wong
2014-05-02 12:13 ` Lukáš Czerner
2014-05-01 23:13 ` [PATCH 10/37] e2fsck: verify checksums after checking everything else Darrick J. Wong
2014-05-02 12:32 ` Lukáš Czerner
2014-05-05 22:56 ` Darrick J. Wong
2014-05-06 11:32 ` Lukáš Czerner
2014-05-08 0:05 ` Darrick J. Wong
2014-05-01 23:13 ` [PATCH 11/37] e2fsck: fix the extended attribute checksum error message Darrick J. Wong
2014-05-02 12:46 ` Lukáš Czerner
2014-05-05 23:08 ` Darrick J. Wong
2014-05-06 10:12 ` Lukáš Czerner
2014-05-01 23:13 ` [PATCH 12/37] e2fsck: insert a missing dirent tail for checksums if possible Darrick J. Wong
2014-05-02 12:54 ` Lukáš Czerner
2014-05-05 23:16 ` Darrick J. Wong
2014-05-01 23:13 ` [PATCH 13/37] e2fsck: write dir blocks after new inode when reconstructing root/lost+found Darrick J. Wong
2014-05-05 17:13 ` Lukáš Czerner
2014-05-01 23:13 ` [PATCH 14/37] dumpe2fs: add switch to disable checksum verification Darrick J. Wong
2014-05-05 17:20 ` Lukáš Czerner
2014-05-01 23:14 ` [PATCH 15/37] mke2fs: set block_validity as a default mount option Darrick J. Wong
2014-05-05 17:24 ` Lukáš Czerner
2014-05-01 23:14 ` [PATCH 16/37] libext2fs: support allocating uninit blocks in bmap2() Darrick J. Wong
2014-05-06 15:45 ` Lukáš Czerner
2014-05-06 19:59 ` Darrick J. Wong
2014-05-07 10:02 ` Lukáš Czerner
2014-05-07 21:37 ` Darrick J. Wong
2014-05-08 0:13 ` [PATCH 1/2] libext2fs: support BLKZEROOUT/FALLOC_FL_ZERO_RANGE in ext2fs_zero_blocks Darrick J. Wong
2014-05-13 11:11 ` Lukáš Czerner
2014-05-08 0:14 ` [PATCH 2/2] libext2fs: support allocating uninit blocks in bmap2() Darrick J. Wong
2014-05-27 16:28 ` Lukáš Czerner
2014-05-28 19:48 ` Darrick J. Wong
2014-05-01 23:14 ` [PATCH 17/37] libext2fs: file IO routines should handle uninit blocks Darrick J. Wong
2014-05-01 23:14 ` [PATCH 18/37] resize2fs: convert fs to and from 64bit mode Darrick J. Wong
2014-05-01 23:14 ` [PATCH 19/37] resize2fs: when toggling 64bit, don't free in-use bg data clusters Darrick J. Wong
2014-05-01 23:14 ` [PATCH 20/37] resize2fs: adjust reserved_gdt_blocks when changing group descriptor size Darrick J. Wong
2014-05-01 23:14 ` [PATCH 21/37] libext2fs: have UNIX IO manager use pread/pwrite Darrick J. Wong
2014-08-02 23:16 ` Theodore Ts'o
2014-05-01 23:14 ` [PATCH 22/37] ext2fs: add readahead method to improve scanning Darrick J. Wong
2014-05-01 23:14 ` [PATCH 23/37] e2fsck: provide routines to read-ahead metadata Darrick J. Wong
2014-05-01 23:14 ` [PATCH 24/37] e2fsck: read-ahead metadata during passes 1, 2, and 4 Darrick J. Wong
2014-07-28 22:25 ` Darrick J. Wong
2014-05-01 23:15 ` [PATCH 25/37] libext2fs: when appending to a file, don't split an index block in equal halves Darrick J. Wong
2014-08-02 23:43 ` Theodore Ts'o
2014-05-01 23:15 ` [PATCH 26/37] libext2fs: find inode goal when allocating blocks Darrick J. Wong
2014-05-01 23:15 ` [PATCH 27/37] libext2fs: find a range of empty blocks Darrick J. Wong
2014-05-01 23:15 ` [PATCH 28/37] libext2fs: provide a function to set inode size Darrick J. Wong
2014-07-26 18:37 ` Theodore Ts'o
2014-05-01 23:15 ` [PATCH 29/37] libext2fs: implement fallocate Darrick J. Wong
2014-05-01 23:15 ` [PATCH 31/37] fuse2fs: translate ACL structures Darrick J. Wong
2014-05-01 23:15 ` [PATCH 32/37] fuse2fs: handle 64-bit dates correctly Darrick J. Wong
2014-05-01 23:16 ` [PATCH 33/37] fuse2fs: implement fallocate Darrick J. Wong
2014-05-01 23:16 ` [PATCH 35/37] tests: enable using fuse2fs with metadata checksum test Darrick J. Wong
2014-05-01 23:16 ` [PATCH 36/37] tests: test date handling Darrick J. Wong
2014-05-01 23:16 ` [PATCH 37/37] ext5: define new subtype to add features and reduce testing complexity Darrick J. Wong
2014-05-02 9:45 ` Lukáš Czerner
2014-05-02 14:04 ` Theodore Ts'o
2014-05-06 1:59 ` Darrick J. Wong
2014-05-06 1:33 ` Darrick J. Wong
2014-05-06 12:50 ` Lukáš Czerner
2014-05-06 15:21 ` Theodore Ts'o
2014-05-06 15:30 ` Lukáš Czerner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LFD.2.00.1405021330460.2154@localhost.localdomain \
--to=lczerner@redhat.com \
--cc=darrick.wong@oracle.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).