diff --git a/pkg/volume/emptydir/empty_dir_linux.go b/pkg/volume/emptydir/empty_dir_linux.go index 63a25dc4ed0..e468fa09f7d 100644 --- a/pkg/volume/emptydir/empty_dir_linux.go +++ b/pkg/volume/emptydir/empty_dir_linux.go @@ -69,7 +69,11 @@ func getPageSize(path string, mounter mount.Interface) (*resource.Quantity, erro // NOTE: Adding suffix 'i' as result should be comparable with a medium size. // pagesize mount option is specified without a suffix, // e.g. pagesize=2M or pagesize=1024M for x86 CPUs - pageSize, err := resource.ParseQuantity(strings.TrimPrefix(opt, prefix) + "i") + trimmedOpt := strings.TrimPrefix(opt, prefix) + if !strings.HasSuffix(trimmedOpt, "i") { + trimmedOpt = trimmedOpt + "i" + } + pageSize, err := resource.ParseQuantity(trimmedOpt) if err != nil { return nil, fmt.Errorf("error getting page size from '%s' mount option: %v", opt, err) } diff --git a/pkg/volume/emptydir/empty_dir_test.go b/pkg/volume/emptydir/empty_dir_test.go index bd813926c2c..78663ac2938 100644 --- a/pkg/volume/emptydir/empty_dir_test.go +++ b/pkg/volume/emptydir/empty_dir_test.go @@ -836,6 +836,12 @@ func TestGetPageSize(t *testing.T) { Path: "/mnt/hugepages-2Mi", Opts: []string{"rw", "relatime", "pagesize=2M"}, }, + { + Device: "/dev/hugepages", + Type: "hugetlbfs", + Path: "/mnt/hugepages-2Mi", + Opts: []string{"rw", "relatime", "pagesize=2Mi"}, + }, { Device: "sysfs", Type: "sysfs",