diff --git a/firmware_handler.cpp b/firmware_handler.cpp
index 26893e3..d72c5c7 100644
--- a/firmware_handler.cpp
+++ b/firmware_handler.cpp
@@ -152,8 +152,7 @@
  * of the data cached, and any additional pertinent information.  The
  * blob_state on the active files will return the state of the update.
  */
-bool FirmwareBlobHandler::stat(const std::string& path,
-                               struct blobs::BlobMeta* meta)
+bool FirmwareBlobHandler::stat(const std::string& path, blobs::BlobMeta* meta)
 {
     /* We know we support this path because canHandle is called ahead */
     if (path == verifyBlobId || path == activeImageBlobId ||
@@ -212,7 +211,7 @@
  * Return stat information on an open session.  It therefore must be an active
  * handle to either the active image or active hash.
  */
-bool FirmwareBlobHandler::stat(uint16_t session, struct blobs::BlobMeta* meta)
+bool FirmwareBlobHandler::stat(uint16_t session, blobs::BlobMeta* meta)
 {
     auto item = lookup.find(session);
     if (item == lookup.end())
diff --git a/firmware_handler.hpp b/firmware_handler.hpp
index 649b059..fd4f9ef 100644
--- a/firmware_handler.hpp
+++ b/firmware_handler.hpp
@@ -154,7 +154,7 @@
     bool canHandleBlob(const std::string& path) override;
     std::vector<std::string> getBlobIds() override;
     bool deleteBlob(const std::string& path) override;
-    bool stat(const std::string& path, struct blobs::BlobMeta* meta) override;
+    bool stat(const std::string& path, blobs::BlobMeta* meta) override;
     bool open(uint16_t session, uint16_t flags,
               const std::string& path) override;
     std::vector<uint8_t> read(uint16_t session, uint32_t offset,
@@ -165,7 +165,7 @@
                    const std::vector<uint8_t>& data) override;
     bool commit(uint16_t session, const std::vector<uint8_t>& data) override;
     bool close(uint16_t session) override;
-    bool stat(uint16_t session, struct blobs::BlobMeta* meta) override;
+    bool stat(uint16_t session, blobs::BlobMeta* meta) override;
     bool expire(uint16_t session) override;
 
     bool triggerVerification();
diff --git a/test/firmware_sessionstat_unittest.cpp b/test/firmware_sessionstat_unittest.cpp
index 98fb6da..a484716 100644
--- a/test/firmware_sessionstat_unittest.cpp
+++ b/test/firmware_sessionstat_unittest.cpp
@@ -36,7 +36,7 @@
     int size = 512;
     EXPECT_CALL(imageMock, getSize()).WillOnce(Return(size));
 
-    struct blobs::BlobMeta meta;
+    blobs::BlobMeta meta;
     EXPECT_TRUE(handler->stat(0, &meta));
     EXPECT_EQ(meta.blobState,
               blobs::OpenFlags::write | FirmwareBlobHandler::UpdateFlags::ipmi);
@@ -62,7 +62,7 @@
     std::vector<std::uint8_t> mBytes = {0x01, 0x02};
     EXPECT_CALL(dataMock, readMeta()).WillOnce(Return(mBytes));
 
-    struct blobs::BlobMeta meta;
+    blobs::BlobMeta meta;
     EXPECT_TRUE(handler->stat(0, &meta));
     EXPECT_EQ(meta.blobState,
               blobs::OpenFlags::write | FirmwareBlobHandler::UpdateFlags::lpc);
diff --git a/test/firmware_stat_unittest.cpp b/test/firmware_stat_unittest.cpp
index 54c8be4..1960c44 100644
--- a/test/firmware_stat_unittest.cpp
+++ b/test/firmware_stat_unittest.cpp
@@ -32,7 +32,7 @@
     auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(
         blobs, data, CreateVerifyMock(), CreateUpdateMock());
 
-    struct blobs::BlobMeta meta;
+    blobs::BlobMeta meta;
     EXPECT_TRUE(handler->stat("asdf", &meta));
     EXPECT_EQ(FirmwareBlobHandler::UpdateFlags::ipmi, meta.blobState);
 }
