From 9b8e6ab2a41119f6e8d21bbc207c53834bce31ae Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Mon, 30 Dec 2019 13:59:51 +1100 Subject: ext2: Read all 64bit of inode number Signed-off-by: Alexey Kardashevskiy --- slof/fs/packages/ext2-files.fs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/slof/fs/packages/ext2-files.fs b/slof/fs/packages/ext2-files.fs index 7245d93..fbfdeeb 100644 --- a/slof/fs/packages/ext2-files.fs +++ b/slof/fs/packages/ext2-files.fs @@ -90,10 +90,19 @@ INSTANCE VARIABLE #blocks-left #blocks-left @ IF inode @ 60 + l@-le read-triple-indirect-blocks THEN ; +: read-inode-table ( groupdesc -- table ) + dup 8 + l@-le \ reads bg_inode_table_lo + desc-size @ 20 > IF + over 28 + l@-le \ reads bg_inode_table_hi + 20 lshift or + THEN + nip +; + : read-inode ( inode# -- ) 1- inodes/group @ u/mod desc-size @ * group-descriptors @ + - 8 + l@-le \ reads bg_inode_table_lo + read-inode-table block-size @ * \ # in group, inode table swap inode-size @ * + xlsplit seek drop inode @ inode-size @ read drop ; -- cgit v1.1