diff --git a/include/estoraged.hpp b/include/estoraged.hpp
index d14a007..3a4fb6c 100644
--- a/include/estoraged.hpp
+++ b/include/estoraged.hpp
@@ -8,6 +8,7 @@
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/exception.hpp>
 #include <sdbusplus/server/object.hpp>
+#include <util.hpp>
 #include <xyz/openbmc_project/Inventory/Item/Drive/server.hpp>
 #include <xyz/openbmc_project/Inventory/Item/Volume/server.hpp>
 
@@ -45,6 +46,7 @@
      */
     EStoraged(sdbusplus::bus::bus& bus, const char* path,
               const std::string& devPath, const std::string& luksName,
+              uint64_t size,
               std::unique_ptr<CryptsetupInterface> cryptInterface =
                   std::make_unique<Cryptsetup>(),
               std::unique_ptr<FilesystemInterface> fsInterface =
@@ -53,7 +55,9 @@
         driveInherit(bus, path), devPath(devPath), containerName(luksName),
         mountPoint("/mnt/" + luksName + "_fs"),
         cryptIface(std::move(cryptInterface)), fsIface(std::move(fsInterface))
-    {}
+    {
+        capacity(size);
+    }
 
     /** @brief Format the LUKS encrypted device and create empty filesystem.
      *
diff --git a/src/main.cpp b/src/main.cpp
index 0207079..82ffcdd 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -5,6 +5,7 @@
 
 #include <phosphor-logging/lg2.hpp>
 #include <sdbusplus/bus.hpp>
+#include <util.hpp>
 
 #include <filesystem>
 #include <iostream>
@@ -69,8 +70,9 @@
         b.request_name(busName.c_str());
 
         /* Create an eStoraged object. */
-        estoraged::EStoraged esObject{b, path.c_str(), physicalBlockDev,
-                                      containerBlockDev};
+        estoraged::EStoraged esObject{
+            b, path.c_str(), physicalBlockDev, containerBlockDev,
+            estoraged::util::Util::findSizeOfBlockDevice(physicalBlockDev)};
         lg2::info("Storage management service is running", "REDFISH_MESSAGE_ID",
                   std::string("OpenBMC.1.0.ServiceStarted"));
 
diff --git a/src/test/estoraged_test.cpp b/src/test/estoraged_test.cpp
index e77d4c6..e7ad562 100644
--- a/src/test/estoraged_test.cpp
+++ b/src/test/estoraged_test.cpp
@@ -43,6 +43,7 @@
   public:
     const char* testFileName = "testfile";
     const char* testLuksDevName = "testfile_luksDev";
+    uint64_t testSize = 24;
     std::ofstream testFile;
     std::unique_ptr<estoraged::EStoraged> esObject;
     const char* testPath = "/test/openbmc_project/storage/test_dev";
@@ -97,8 +98,8 @@
         mockFsIface = fsIface.get();
 
         esObject = std::make_unique<estoraged::EStoraged>(
-            bus, testPath, testFileName, testLuksDevName, std::move(cryptIface),
-            std::move(fsIface));
+            bus, testPath, testFileName, testLuksDevName, testSize,
+            std::move(cryptIface), std::move(fsIface));
     }
 
     void TearDown() override
