linux.conf.au 2003 Deleting files static void fs_remove_file (struct dentry *dentry) { struct dentry *parent = dentry->d_parent; if (!parent || !parent->d_inode) return; down(&parent->d_inode->i_sem); if (usbfs_positive(dentry)) { if (dentry->d_inode) { if (S_ISDIR(dentry->d_inode->i_mode)) usbfs_rmdir(parent->d_inode, dentry); else usbfs_unlink(parent->d_inode, dentry); dput(dentry); } } up(&parent->d_inode->i_sem); }