/* destruction routines: unlink, rmdir */ static int coda_unlink(struct inode *dir, struct dentry *de) { int error; const char *name = de->d_name.name; int len = de->d_name.len; error = venus_remove(dir->i_sb, coda_i2f(dir), name, len); if (error) return error; coda_dir_update_mtime(dir); drop_nlink(de->d_inode); return 0; }
/* destruction routines: unlink, rmdir */ int coda_unlink(struct inode *dir, struct dentry *de) { int error; const char *name = de->d_name.name; int len = de->d_name.len; lock_kernel(); coda_vfs_stat.unlink++; error = venus_remove(dir->i_sb, coda_i2f(dir), name, len); if ( error ) { unlock_kernel(); return error; } coda_dir_changed(dir, 0); drop_nlink(de->d_inode); unlock_kernel(); return 0; }
/* destruction routines: unlink, rmdir */ int coda_unlink(struct inode *dir, struct dentry *de) { int error; const char *name = de->d_name.name; int len = de->d_name.len; coda_vfs_stat.unlink++; CDEBUG(D_INODE, " %s in %s, dirino %ld\n", name , coda_i2s(dir), dir->i_ino); error = venus_remove(dir->i_sb, coda_i2f(dir), name, len); if ( error ) { CDEBUG(D_INODE, "upc returned error %d\n", error); return error; } coda_dir_changed(dir, 0); de->d_inode->i_nlink--; return 0; }