Skip to content

Commit

Permalink
Merge tag 'configfs-for-4.10' of git://git.infradead.org/users/hch/co…
Browse files Browse the repository at this point in the history
…nfigfs

Pull configfs update from Christoph Hellwig:
 "Just one simple change from Andrzej to drop the pointless return value
  from the ->drop_link method"

* tag 'configfs-for-4.10' of git://git.infradead.org/users/hch/configfs:
  fs: configfs: don't return anything from drop_link
  • Loading branch information
Linus Torvalds committed Dec 14, 2016
2 parents 5084fdf + e16769d commit 84b6079
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Documentation/filesystems/configfs/configfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ among other things. For that, it needs a type.
void (*release)(struct config_item *);
int (*allow_link)(struct config_item *src,
struct config_item *target);
int (*drop_link)(struct config_item *src,
void (*drop_link)(struct config_item *src,
struct config_item *target);
};

Expand Down
10 changes: 4 additions & 6 deletions drivers/nvme/target/configfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ static int nvmet_port_subsys_allow_link(struct config_item *parent,
return ret;
}

static int nvmet_port_subsys_drop_link(struct config_item *parent,
static void nvmet_port_subsys_drop_link(struct config_item *parent,
struct config_item *target)
{
struct nvmet_port *port = to_nvmet_port(parent->ci_parent);
Expand All @@ -493,7 +493,7 @@ static int nvmet_port_subsys_drop_link(struct config_item *parent,
goto found;
}
up_write(&nvmet_config_sem);
return -EINVAL;
return;

found:
list_del(&p->entry);
Expand All @@ -502,7 +502,6 @@ static int nvmet_port_subsys_drop_link(struct config_item *parent,
nvmet_disable_port(port);
up_write(&nvmet_config_sem);
kfree(p);
return 0;
}

static struct configfs_item_operations nvmet_port_subsys_item_ops = {
Expand Down Expand Up @@ -556,7 +555,7 @@ static int nvmet_allowed_hosts_allow_link(struct config_item *parent,
return ret;
}

static int nvmet_allowed_hosts_drop_link(struct config_item *parent,
static void nvmet_allowed_hosts_drop_link(struct config_item *parent,
struct config_item *target)
{
struct nvmet_subsys *subsys = to_subsys(parent->ci_parent);
Expand All @@ -569,14 +568,13 @@ static int nvmet_allowed_hosts_drop_link(struct config_item *parent,
goto found;
}
up_write(&nvmet_config_sem);
return -EINVAL;
return;

found:
list_del(&p->entry);
nvmet_genctr++;
up_write(&nvmet_config_sem);
kfree(p);
return 0;
}

static struct configfs_item_operations nvmet_allowed_hosts_item_ops = {
Expand Down
7 changes: 3 additions & 4 deletions drivers/target/target_core_fabric_configfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ static int target_fabric_mappedlun_link(
return core_dev_add_initiator_node_lun_acl(se_tpg, lacl, lun, lun_access_ro);
}

static int target_fabric_mappedlun_unlink(
static void target_fabric_mappedlun_unlink(
struct config_item *lun_acl_ci,
struct config_item *lun_ci)
{
Expand All @@ -146,7 +146,7 @@ static int target_fabric_mappedlun_unlink(
struct se_lun *lun = container_of(to_config_group(lun_ci),
struct se_lun, lun_group);

return core_dev_del_initiator_node_lun_acl(lun, lacl);
core_dev_del_initiator_node_lun_acl(lun, lacl);
}

static struct se_lun_acl *item_to_lun_acl(struct config_item *item)
Expand Down Expand Up @@ -669,7 +669,7 @@ static int target_fabric_port_link(
return ret;
}

static int target_fabric_port_unlink(
static void target_fabric_port_unlink(
struct config_item *lun_ci,
struct config_item *se_dev_ci)
{
Expand All @@ -688,7 +688,6 @@ static int target_fabric_port_unlink(
}

core_dev_del_lun(se_tpg, lun);
return 0;
}

static void target_fabric_port_release(struct config_item *item)
Expand Down
8 changes: 3 additions & 5 deletions drivers/usb/gadget/configfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ static int config_usb_cfg_link(
return ret;
}

static int config_usb_cfg_unlink(
static void config_usb_cfg_unlink(
struct config_item *usb_cfg_ci,
struct config_item *usb_func_ci)
{
Expand Down Expand Up @@ -437,12 +437,11 @@ static int config_usb_cfg_unlink(
list_del(&f->list);
usb_put_function(f);
mutex_unlock(&gi->lock);
return 0;
return;
}
}
mutex_unlock(&gi->lock);
WARN(1, "Unable to locate function to unbind\n");
return 0;
}

static struct configfs_item_operations gadget_config_item_ops = {
Expand Down Expand Up @@ -865,7 +864,7 @@ static int os_desc_link(struct config_item *os_desc_ci,
return ret;
}

static int os_desc_unlink(struct config_item *os_desc_ci,
static void os_desc_unlink(struct config_item *os_desc_ci,
struct config_item *usb_cfg_ci)
{
struct gadget_info *gi = container_of(to_config_group(os_desc_ci),
Expand All @@ -878,7 +877,6 @@ static int os_desc_unlink(struct config_item *os_desc_ci,
cdev->os_desc_config = NULL;
WARN_ON(gi->composite.gadget_driver.udc_name);
mutex_unlock(&gi->lock);
return 0;
}

static struct configfs_item_operations os_desc_ops = {
Expand Down
25 changes: 5 additions & 20 deletions drivers/usb/gadget/function/uvc_configfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -547,15 +547,14 @@ static int uvcg_control_class_allow_link(struct config_item *src,
return ret;
}

static int uvcg_control_class_drop_link(struct config_item *src,
static void uvcg_control_class_drop_link(struct config_item *src,
struct config_item *target)
{
struct config_item *control, *header;
struct f_uvc_opts *opts;
struct mutex *su_mutex = &src->ci_group->cg_subsys->su_mutex;
struct uvc_descriptor_header **class_array;
struct uvcg_control_header *target_hdr;
int ret = -EINVAL;

mutex_lock(su_mutex); /* for navigating configfs hierarchy */

Expand All @@ -569,23 +568,17 @@ static int uvcg_control_class_drop_link(struct config_item *src,
mutex_lock(&opts->lock);

class_array = uvcg_get_ctl_class_arr(src, opts);
if (!class_array)
goto unlock;
if (opts->refcnt) {
ret = -EBUSY;
if (!class_array || opts->refcnt)
goto unlock;
}

target_hdr = to_uvcg_control_header(target);
--target_hdr->linked;
class_array[0] = NULL;
ret = 0;

unlock:
mutex_unlock(&opts->lock);
out:
mutex_unlock(su_mutex);
return ret;
}

static struct configfs_item_operations uvcg_control_class_item_ops = {
Expand Down Expand Up @@ -777,7 +770,7 @@ static int uvcg_streaming_header_allow_link(struct config_item *src,
return ret;
}

static int uvcg_streaming_header_drop_link(struct config_item *src,
static void uvcg_streaming_header_drop_link(struct config_item *src,
struct config_item *target)
{
struct mutex *su_mutex = &src->ci_group->cg_subsys->su_mutex;
Expand All @@ -786,7 +779,6 @@ static int uvcg_streaming_header_drop_link(struct config_item *src,
struct uvcg_streaming_header *src_hdr;
struct uvcg_format *target_fmt = NULL;
struct uvcg_format_ptr *format_ptr, *tmp;
int ret = -EINVAL;

src_hdr = to_uvcg_streaming_header(src);
mutex_lock(su_mutex); /* for navigating configfs hierarchy */
Expand All @@ -811,8 +803,6 @@ static int uvcg_streaming_header_drop_link(struct config_item *src,
out:
mutex_unlock(&opts->lock);
mutex_unlock(su_mutex);
return ret;

}

static struct configfs_item_operations uvcg_streaming_header_item_ops = {
Expand Down Expand Up @@ -2051,15 +2041,14 @@ static int uvcg_streaming_class_allow_link(struct config_item *src,
return ret;
}

static int uvcg_streaming_class_drop_link(struct config_item *src,
static void uvcg_streaming_class_drop_link(struct config_item *src,
struct config_item *target)
{
struct config_item *streaming, *header;
struct f_uvc_opts *opts;
struct mutex *su_mutex = &src->ci_group->cg_subsys->su_mutex;
struct uvc_descriptor_header ***class_array;
struct uvcg_streaming_header *target_hdr;
int ret = -EINVAL;

mutex_lock(su_mutex); /* for navigating configfs hierarchy */

Expand All @@ -2076,23 +2065,19 @@ static int uvcg_streaming_class_drop_link(struct config_item *src,
if (!class_array || !*class_array)
goto unlock;

if (opts->refcnt) {
ret = -EBUSY;
if (opts->refcnt)
goto unlock;
}

target_hdr = to_uvcg_streaming_header(target);
--target_hdr->linked;
kfree(**class_array);
kfree(*class_array);
*class_array = NULL;
ret = 0;

unlock:
mutex_unlock(&opts->lock);
out:
mutex_unlock(su_mutex);
return ret;
}

static struct configfs_item_operations uvcg_streaming_class_item_ops = {
Expand Down
2 changes: 1 addition & 1 deletion include/linux/configfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ static struct configfs_bin_attribute _pfx##attr_##_name = { \
struct configfs_item_operations {
void (*release)(struct config_item *);
int (*allow_link)(struct config_item *src, struct config_item *target);
int (*drop_link)(struct config_item *src, struct config_item *target);
void (*drop_link)(struct config_item *src, struct config_item *target);
};

struct configfs_group_operations {
Expand Down

0 comments on commit 84b6079

Please sign in to comment.