3939class ExtFS :
4040 def __init__ (self , fh : BinaryIO ):
4141 self .fh = fh
42- # self._path_cache = {}
4342 self ._journal = None
4443
4544 fh .seek (c_ext .EXT2_SBOFF )
@@ -123,13 +122,10 @@ def get(self, path_or_inum: str | int, node: INode | None = None) -> INode:
123122
124123 node = node if node else self .root
125124 parts = path_or_inum .split ("/" )
126- for part_num , part in enumerate (parts ):
125+ for _ , part in enumerate (parts ):
127126 if not part :
128127 continue
129128
130- while node .filetype == stat .S_IFLNK and part_num < len (parts ):
131- node = node .link_inode
132-
133129 for entry in node .iterdir ():
134130 if entry .filename == part :
135131 node = entry
@@ -144,13 +140,12 @@ def get_inode(
144140 inum : int ,
145141 filename : str | None = None ,
146142 filetype : int | None = None ,
147- parentInum : int | None = None ,
148143 lazy : bool = False ,
149144 ) -> INode :
150145 if inum < c_ext .EXT2_BAD_INO or inum > self .sb .s_inodes_count :
151146 raise Error (f"inum out of range { c_ext .EXT2_BAD_INO } -{ self .sb .s_inodes_count } : { inum } " )
152147
153- inode = INode (self , inum , filename , filetype , parentInum )
148+ inode = INode (self , inum , filename , filetype )
154149 if not lazy :
155150 inode ._inode = inode ._read_inode ()
156151
@@ -186,11 +181,9 @@ def __init__(
186181 inum : int ,
187182 filename : str | None = None ,
188183 filetype : int | None = None ,
189- parentInum : int | None = None ,
190184 ):
191185 self .extfs = extfs
192186 self .inum = inum
193- self .parentInum = parentInum
194187 self ._inode = None
195188
196189 self .filename = filename
@@ -245,17 +238,6 @@ def link(self) -> str:
245238 self ._link = self .open ().read ().decode (errors = "surrogateescape" )
246239 return self ._link
247240
248- @property
249- def link_inode (self ) -> INode :
250- if not self ._link_inum :
251- # Relative lookups work because . and .. are actual directory entries
252- link = self .link
253- relnode = None if link .startswith ("/" ) else self .extfs .get (self .parentInum )
254- target = self .extfs .get (self .link , relnode )
255- self ._link_inum = target .inum
256- return target
257- return self .extfs .get_inode (self ._link_inum )
258-
259241 @property
260242 def xattr (self ) -> list [XAttr ]:
261243 if not self ._xattr :
@@ -364,7 +346,7 @@ def iterdir(self) -> Iterator[INode]:
364346 if ftype :
365347 ftype = FILETYPES [ftype ]
366348
367- yield self .extfs .get_inode (direntry .inode , fname , ftype , parentInum = self . inum , lazy = True )
349+ yield self .extfs .get_inode (direntry .inode , fname , ftype , lazy = True )
368350
369351 offset += direntry .rec_len
370352 buf .seek (offset )
0 commit comments