diff --git a/f2fs.h b/f2fs.h
index 6c180b4..a2fa58a 100644
--- a/f2fs.h
+++ b/f2fs.h
@@ -94,7 +94,7 @@
 
   zx_status_t FindVnode(fbl::RefPtr<VnodeF2fs> *out, ino_t ino);
 
-  void GetNodeInfo(nid_t nid, struct node_info *ni);
+  void GetNodeInfo(nid_t nid, node_info *ni);
 
   void SetUnmountCallback(fbl::Closure closure) { on_unmount_ = std::move(closure); }
   void Shutdown(fs::Vfs::ShutdownCallback cb) final;
@@ -111,18 +111,18 @@
 #if 0  // porting needed
   // void InitOnce(void *foo);
   // VnodeF2fs *F2fsAllocInode();
-  // static void F2fsICallback(struct rcu_head *head);
-  // void F2fsDestroyInode(struct inode *inode);
+  // static void F2fsICallback(rcu_head *head);
+  // void F2fsDestroyInode(inode *inode);
 #endif
 
   void F2fsPutSuper();
   int F2fsSyncFs(int sync);
 #if 0  // porting needed
-  // int F2fsStatfs(struct dentry *dentry /*, struct kstatfs *buf*/);
-  // int F2fsShowOptions(/*struct seq_file *seq*/);
+  // int F2fsStatfs(dentry *dentry /*, kstatfs *buf*/);
+  // int F2fsShowOptions(/*seq_file *seq*/);
   // VnodeF2fs *F2fsNfsGetInode(uint64_t ino, uint32_t generation);
-  // struct dentry *F2fsFhToDentry(struct fid *fid, int fh_len, int fh_type);
-  // struct dentry *F2fsFhToParent(struct fid *fid, int fh_len, int fh_type);
+  // dentry *F2fsFhToDentry(fid *fid, int fh_len, int fh_type);
+  // dentry *F2fsFhToParent(fid *fid, int fh_len, int fh_type);
   // int ParseOptions(char *options);
   // loff_t MaxFileSize(unsigned bits);
 #endif
@@ -131,7 +131,7 @@
   void InitSbInfo();
   zx_status_t F2fsFillSuper();
 #if 0  // porting needed
-  // struct dentry *F2fsMount(struct file_system_type *fs_type, int flags,
+  // dentry *F2fsMount(file_system_type *fs_type, int flags,
   //     const char *dev_name, void *data);
   // int InitInodecache(void);
   // void DestroyInodecache(void);
@@ -142,9 +142,9 @@
   // checkpoint.cc
   Page *GetMetaPage(pgoff_t index);
   Page *GrabMetaPage(pgoff_t index);
-  int F2fsWriteMetaPage(Page *page, struct WritebackControl *wbc);
+  int F2fsWriteMetaPage(Page *page, WritebackControl *wbc);
 #if 0  // porting needed
-  // int F2fsWriteMetaPages(struct address_space *mapping, struct WritebackControl *wbc);
+  // int F2fsWriteMetaPages(address_space *mapping, WritebackControl *wbc);
 #endif
   long SyncMetaPages(enum page_type type, long nr_to_write);
 #if 0  // porting needed
@@ -175,7 +175,7 @@
 
   // recovery.cc
   bool SpaceForRollForward();
-  struct fsync_inode_entry *GetFsyncInode(list_node_t *head, nid_t ino);
+  fsync_inode_entry *GetFsyncInode(list_node_t *head, nid_t ino);
   zx_status_t RecoverDentry(Page *ipage, VnodeF2fs *vnode);
   zx_status_t RecoverInode(VnodeF2fs *inode, Page *node_page);
   zx_status_t FindFsyncDnodes(list_node_t *head);
