libxfs_init_t xargs;
thread_args *tcarg;
struct stat statbuf;
+ int error;
progname = basename(argv[0]);
/* We don't yet know the sector size, so read maximal size */
libxfs_buftarg_init(&mbuf, xargs.ddev, xargs.logdev, xargs.rtdev);
- sbp = libxfs_buf_read(mbuf.m_ddev_targp, XFS_SB_DADDR,
- 1 << (XFS_MAX_SECTORSIZE_LOG - BBSHIFT), 0, NULL);
+ error = -libxfs_buf_read_uncached(mbuf.m_ddev_targp, XFS_SB_DADDR,
+ 1 << (XFS_MAX_SECTORSIZE_LOG - BBSHIFT), 0, &sbp, NULL);
+ if (error) {
+ do_log(_("%s: couldn't read superblock, error=%d\n"),
+ progname, error);
+ exit(1);
+ }
+
sb = &mbuf.m_sb;
libxfs_sb_from_disk(sb, XFS_BUF_TO_SBP(sbp));
/* Do it again, now with proper length and verifier */
libxfs_buf_relse(sbp);
- libxfs_purgebuf(sbp);
+
sbp = libxfs_buf_read(mbuf.m_ddev_targp, XFS_SB_DADDR,
1 << (sb->sb_sectlog - BBSHIFT),
0, &xfs_sb_buf_ops);