int configfs_add_file(struct dentry * dir, const struct configfs_attribute * attr, int type) { struct configfs_dirent * parent_sd = dir->d_fsdata; umode_t mode = (attr->ca_mode & S_IALLUGO) | S_IFREG; int error = 0; mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_NORMAL); error = configfs_make_dirent(parent_sd, NULL, (void *) attr, mode, type); mutex_unlock(&dir->d_inode->i_mutex); return error; }
int configfs_add_file(struct dentry * dir, const struct configfs_attribute * attr, int type) { struct configfs_dirent * parent_sd = dir->d_fsdata; umode_t mode = (attr->ca_mode & S_IALLUGO) | S_IFREG; int error = 0; struct inode *inode = tx_cache_get_dentry(dir)->d_inode; mutex_lock(&inode->i_mutex); error = configfs_make_dirent(parent_sd, NULL, (void *) attr, mode, type); mutex_unlock(&inode->i_mutex); return error; }
int configfs_create_file(struct config_item * item, const struct configfs_attribute * attr) { struct dentry *dir = item->ci_dentry; struct configfs_dirent *parent_sd = dir->d_fsdata; umode_t mode = (attr->ca_mode & S_IALLUGO) | S_IFREG; int error = 0; mutex_lock_nested(&d_inode(dir)->i_mutex, I_MUTEX_NORMAL); error = configfs_make_dirent(parent_sd, NULL, (void *) attr, mode, CONFIGFS_ITEM_ATTR); mutex_unlock(&d_inode(dir)->i_mutex); return error; }
int configfs_create_bin_file(struct config_item *item, const struct configfs_bin_attribute *bin_attr) { struct dentry *dir = item->ci_dentry; struct configfs_dirent *parent_sd = dir->d_fsdata; umode_t mode = (bin_attr->cb_attr.ca_mode & S_IALLUGO) | S_IFREG; int error = 0; inode_lock_nested(dir->d_inode, I_MUTEX_NORMAL); error = configfs_make_dirent(parent_sd, NULL, (void *) bin_attr, mode, CONFIGFS_ITEM_BIN_ATTR); inode_unlock(dir->d_inode); return error; }