Just one simple change from Andrzej to drop the pointless return value
from the ->drop_link method. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJYUUZ8AAoJEA+eU2VSBFGDjHIP/RKCBerQNkQ5hdUPnwJkXOh1 b4SWiPNsNgkzpKJsE/vuL6R2qq9KX5sxWLi8a3Wx5jyMst1Xj2m4SvI4fUew/hBC QZM86aMJLcWZ8BfqLk2tLys759z/MSZSrXcUU8EM+JJqb6E0+i+5pgX8gOk7Pxwo FUagFzuGXTGORwkWRf47ludBuDEGMCrLQZ6WaXEKQULTUwfPrnP+n9EhZcWzzsyu 0YxW9SFD73LgRSPLgxc+rw875D8rb3WSClWj/2LLQUy8z8QEJ83Mgt9hcbBV0Ppa efP0kPZbpDnVx6TjpldRKW9GivkbFXNnChMmgTkBGYTRjn8IHDsyAb6ZABw/O37N oyvd42xVDCE+GSImaMgCPL/5MEsQ+v9xCfgkBcyhWVQYFFj89Nmz/8VKp6AtTW3j X7MQuzdzKGoWTVpAOgw/SvjrRx+fcciTg31AhhGjE5cmARVoBJuCDa6NM3WXFQf4 Pq74zetWDB38sBZwQV/6Y1m3OJGquD4MxX9b5SbNzwuROrKyJCAe3CCw7CKvuuWj RPkwZkHiCawRijxNDCWU8zpMcuUCdt9yjTWbUW/WrvKR6BGF4IwUHf9k8oorv1Qc Bo7enURnYBmcb7cijOLO+onzCf5iWAwMNk8KKJ1zthaZbloIGw8jdp5kOe5spEvF Uju3n/GNA/OWe2MAuutE =nOOH -----END PGP SIGNATURE----- Merge tag 'configfs-for-4.10' of git://git.infradead.org/users/hch/configfs 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
This commit is contained in:
Коммит
84b6079134
|
@ -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);
|
||||
};
|
||||
|
||||
|
|
|
@ -480,7 +480,7 @@ out_free_link:
|
|||
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);
|
||||
|
@ -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);
|
||||
|
@ -502,7 +502,6 @@ found:
|
|||
nvmet_disable_port(port);
|
||||
up_write(&nvmet_config_sem);
|
||||
kfree(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct configfs_item_operations nvmet_port_subsys_item_ops = {
|
||||
|
@ -556,7 +555,7 @@ out_free_link:
|
|||
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);
|
||||
|
@ -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 = {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
|
@ -669,7 +669,7 @@ out:
|
|||
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)
|
||||
{
|
||||
|
@ -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)
|
||||
|
|
|
@ -408,7 +408,7 @@ out:
|
|||
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)
|
||||
{
|
||||
|
@ -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 = {
|
||||
|
@ -865,7 +864,7 @@ out:
|
|||
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),
|
||||
|
@ -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 = {
|
||||
|
|
|
@ -547,7 +547,7 @@ out:
|
|||
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;
|
||||
|
@ -555,7 +555,6 @@ static int uvcg_control_class_drop_link(struct config_item *src,
|
|||
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 */
|
||||
|
||||
|
@ -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)
|
||||
if (!class_array || opts->refcnt)
|
||||
goto unlock;
|
||||
if (opts->refcnt) {
|
||||
ret = -EBUSY;
|
||||
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 = {
|
||||
|
@ -777,7 +770,7 @@ out:
|
|||
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;
|
||||
|
@ -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 */
|
||||
|
@ -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 = {
|
||||
|
@ -2051,7 +2041,7 @@ out:
|
|||
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;
|
||||
|
@ -2059,7 +2049,6 @@ static int uvcg_streaming_class_drop_link(struct config_item *src,
|
|||
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 */
|
||||
|
||||
|
@ -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 = {
|
||||
|
|
|
@ -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 {
|
||||
|
|
Загрузка…
Ссылка в новой задаче