class Dir

Defined at line 28 of file ../../src/storage/f2fs/dir.h

Public Methods

void ~Dir ()

Defined at line 34 of file ../../src/storage/f2fs/dir.h

void fbl_recycle ()

Required for memory management, see the class comment above Vnode for more.

Defined at line 37 of file ../../src/storage/f2fs/dir.h

void Dir (F2fs * fs, ino_t ino, umode_t mode, LockedPage node_page)

Constructor for directories loaded from disk

Defined at line 84 of file ../../src/storage/f2fs/dir.cc

void Dir (F2fs * fs, ino_t ino, umode_t mode, std::optional<gid_t> gid)

Constructor for newly created directories

Defined at line 77 of file ../../src/storage/f2fs/dir.cc

fuchsia_io::NodeProtocolKinds GetProtocols ()

Defined at line 87 of file ../../src/storage/f2fs/dir.cc

zx_status_t GetVmo (fuchsia_io::wire::VmoFlags flags, zx::vmo * out_vmo)

Defined at line 113 of file ../../src/storage/f2fs/dir.h

zx::result<LockedPage> FindDataPage (pgoff_t index, bool do_read)

Defined at line 613 of file ../../src/storage/f2fs/dir.cc

zx::result<LockedPage> FindVictimPage (pgoff_t index)

Defined at line 721 of file ../../src/storage/f2fs/dir.cc

zx_status_t Lookup (std::string_view name, fbl::RefPtr<fs::Vnode> * out)

Lookup

Defined at line 79 of file ../../src/storage/f2fs/namei.cc

zx_status_t DoLookup (std::string_view name, fbl::RefPtr<fs::Vnode> * out)

Defined at line 64 of file ../../src/storage/f2fs/namei.cc

zx::result<ino_t> LookUpEntries (std::string_view name)

Defined at line 220 of file ../../src/storage/f2fs/dir.cc

zx::result<DentryInfo> FindEntryOnDevice (std::string_view name, fbl::RefPtr<Page> * res_page)

Find an entry in the specified directory with the wanted name.

It returns the page where the entry was found and the entry info.

Page is returned mapped and unlocked. Entry is guaranteed to be valid.

Defined at line 173 of file ../../src/storage/f2fs/dir.cc

zx::result<DentryInfo> FindEntry (std::string_view name, fbl::RefPtr<Page> * res_page)

Defined at line 193 of file ../../src/storage/f2fs/dir.cc

zx::result<DentryInfo> FindInInlineDir (std::string_view name, fbl::RefPtr<Page> * res_page)

Defined at line 45 of file ../../src/storage/f2fs/inline.cc

zx::result<DentryInfo> FindInBlock (fbl::RefPtr<Page> dentry_page, std::string_view name, f2fs_hash_t namehash)

Defined at line 105 of file ../../src/storage/f2fs/dir.cc

zx::result<DentryInfo> FindInLevel (unsigned int level, std::string_view name, f2fs_hash_t namehash, fbl::RefPtr<Page> * res_page)

Defined at line 143 of file ../../src/storage/f2fs/dir.cc

zx_status_t Readdir (fs::VdirCookie * cookie, void * dirents, size_t len, size_t * out_actual)

Defined at line 524 of file ../../src/storage/f2fs/dir.cc

zx_status_t ReadInlineDir (fs::VdirCookie * cookie, void * dirents, size_t len, size_t * out_actual)

Defined at line 309 of file ../../src/storage/f2fs/inline.cc

zx_status_t Rename (fbl::RefPtr<fs::Vnode> _newdir, std::string_view oldname, std::string_view newname, bool src_must_be_dir, bool dst_must_be_dir)

rename

Defined at line 191 of file ../../src/storage/f2fs/namei.cc

void SetLink (const DentryInfo & info, fbl::RefPtr<Page> & page, VnodeF2fs * vnode)

Defined at line 253 of file ../../src/storage/f2fs/dir.cc

zx::result<DentryInfo> GetParentDentryInfo (fbl::RefPtr<Page> * out)

Defined at line 234 of file ../../src/storage/f2fs/dir.cc

zx_status_t Link (std::string_view name, fbl::RefPtr<fs::Vnode> new_child)

create and link

Defined at line 34 of file ../../src/storage/f2fs/namei.cc

zx::result<fbl::RefPtr<fs::Vnode>> Create (std::string_view name, fs::CreationType type)

Defined at line 352 of file ../../src/storage/f2fs/namei.cc

zx::result<fbl::RefPtr<fs::Vnode>> CreateWithMode (std::string_view name, umode_t mode)

Defined at line 362 of file ../../src/storage/f2fs/namei.cc

zx_status_t AddLink (std::string_view name, VnodeF2fs * vnode)

Defined at line 330 of file ../../src/storage/f2fs/dir.cc

zx::result<bool> AddInlineEntry (std::string_view name, VnodeF2fs * vnode)

Defined at line 204 of file ../../src/storage/f2fs/inline.cc

zx_status_t ConvertInlineDir ()

Defined at line 145 of file ../../src/storage/f2fs/inline.cc

void UpdateParentMetadata (VnodeF2fs * vnode, uint64_t current_depth)

Defined at line 291 of file ../../src/storage/f2fs/dir.cc

zx_status_t InitInodeMetadata ()

Defined at line 277 of file ../../src/storage/f2fs/dir.cc

zx_status_t MakeEmpty (ino_t parent_ino)

Defined at line 463 of file ../../src/storage/f2fs/dir.cc

zx_status_t MakeEmptyInlineDir (ino_t parent_ino)

Defined at line 92 of file ../../src/storage/f2fs/inline.cc

size_t RoomInInlineDir (const PageBitmap & bits, size_t slots)

Defined at line 127 of file ../../src/storage/f2fs/inline.cc

size_t RoomForFilename (const PageBitmap & bits, size_t slots)

Defined at line 313 of file ../../src/storage/f2fs/dir.cc

zx_status_t Unlink (std::string_view name, bool must_be_dir)

delete

Defined at line 418 of file ../../src/storage/f2fs/namei.cc

zx_status_t Rmdir (Dir * vnode, std::string_view name)

Defined at line 98 of file ../../src/storage/f2fs/namei.cc

zx_status_t DoUnlink (VnodeF2fs * vnode, std::string_view name)

Defined at line 84 of file ../../src/storage/f2fs/namei.cc

void DeleteEntry (const DentryInfo & info, fbl::RefPtr<Page> & page, VnodeF2fs * vnode)

It only removes the dentry from the dentry page, corresponding name

entry in name page does not need to be touched during deletion.

Defined at line 404 of file ../../src/storage/f2fs/dir.cc

void DeleteInlineEntry (const DentryInfo & info, fbl::RefPtr<Page> & page, VnodeF2fs * vnode)

Defined at line 255 of file ../../src/storage/f2fs/inline.cc

zx::result<> RecoverLink (VnodeF2fs & vnode)

recovery

Defined at line 16 of file ../../src/storage/f2fs/namei.cc

void VmoRead (uint64_t offset, uint64_t length)

Defined at line 590 of file ../../src/storage/f2fs/dir.cc

zx::result<PageBitmap> GetBitmap (fbl::RefPtr<Page> dentry_page)

Defined at line 596 of file ../../src/storage/f2fs/dir.cc

block_t GetBlockAddr (LockedPage & page)

for data blocks

Defined at line 611 of file ../../src/storage/f2fs/dir.cc

zx::result<LockedPage> GetNewLockedPage (pgoff_t index)

Defined at line 732 of file ../../src/storage/f2fs/dir.cc

zx_status_t GetLockedDataPage (pgoff_t index, LockedPage * out)

The callers should be able to know whether |index| is valid or not.

If it tries to access a hole, return an error.

Defined at line 649 of file ../../src/storage/f2fs/dir.cc

zx::result<std::vector<LockedPage>> GetLockedDataPages (pgoff_t start, size_t size)

Defined at line 662 of file ../../src/storage/f2fs/dir.cc