When an LVM logical volume grows but the mounted filesystem still shows the old size, applications can continue to fail with low-space errors even though the block device has more capacity. Growing the filesystem brings the extra logical-volume space into the mounted path where services write data.
The grow command depends on the filesystem type rather than on LVM itself. ext4 uses resize2fs against the logical-volume device, while XFS uses xfs_growfs against the mount point and must be mounted during the grow.
Start only after the logical volume already has the intended size from an earlier lvextend or lvresize step. Keep a backup or storage snapshot before changing production storage, and use the root-filesystem flow for / because boot and rescue access change the risk profile.
$ findmnt /srv/data --output TARGET,SOURCE,FSTYPE,SIZE,AVAIL TARGET SOURCE FSTYPE SIZE AVAIL /srv/data /dev/mapper/vgdata-data ext4 487.2M 451.2M
Replace /srv/data with the mount point that should receive the extra space. The SOURCE column should point to the LVM device, commonly under /dev/mapper/ or /dev/<vg>/<lv>.
$ sudo lvs --units m --nosuffix --options lv_path,lv_size /dev/vgdata/data Path LSize /dev/vgdata/data 1024.00
If the logical volume still shows the old size, extend the LV first before growing the filesystem.
Related: How to increase the size of an LVM logical volume
Growing ext4 and XFS is normally online, but targeting the wrong device, using the wrong filesystem tool, or discovering a damaged filesystem during the change can still interrupt the workload.
$ sudo resize2fs /dev/vgdata/data resize2fs 1.47.2 (1-Jan-2025) Filesystem at /dev/vgdata/data is mounted on /srv/data; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/vgdata/data is now 262144 (4k) blocks long.
Omitting the size tells resize2fs to fill the available logical-volume space. The command resizes ext2, ext3, and ext4 filesystems, but it does not expand the underlying LV.
$ sudo xfs_growfs /srv/data meta-data=/dev/mapper/vgdata-data isize=512 agcount=4, agsize=32768 blks data = bsize=4096 blocks=131072, imaxpct=25 ##### snipped ##### data blocks changed from 131072 to 196608
Run either the ext4 step or the XFS step for this mount, not both. xfs_growfs targets the mounted path, such as /srv/data, instead of the LV device path.
$ df -h /srv/data Filesystem Size Used Avail Use% Mounted on /dev/mapper/vgdata-data 991M 152K 935M 1% /srv/data
If df still reports the old size, recheck the FSTYPE value, confirm the LV is larger, and make sure the grow command targeted the active mounted filesystem.