• Patrick Mochel's avatar
    clean up driverfs removal of directories · 6dc7de88
    Patrick Mochel authored
    - Make sure we have a valid inode when deleting a dentry
    - use list_for_each_safe instead of manually walking ->d_subdirs
    - don't do dget() in driverfs_mknod, since we already have a reference to it via driverfs_create_*
    - so, remove extra dput() in driverfs_remove_dir and driverfs_remove_file
    - Don't do get_mount() in driverfs_create_file, since it was done for the directory
    - so remove extrra put_mount() from driverfs_remove_*
    - Call d_invalidate() to unhash the files and directories instead of d_delete
    - Remove our own d_unhash(), since d_invalidate() does the equivalent
    - inline driverfs_rmdir in driverfs_remove_dir since its the only user and it prevents us from
      taking the dir's semaphore twice.
    6dc7de88
inode.c 15.7 KB