Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 345857
b: refs/heads/master
c: 3b98c0c
h: refs/heads/master
i:
  345855: 7dcdeb1
v: v3
  • Loading branch information
Lars Ellenberg authored and Philipp Reisner committed Nov 3, 2012
1 parent 573e0d1 commit 680f80f
Show file tree
Hide file tree
Showing 8 changed files with 807 additions and 841 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ec2c35ac1ea288f5c931e32452ecea50068e8450
refs/heads/master: 3b98c0c2093d1f92e5b7394ae0b13d142e7ef880
3 changes: 2 additions & 1 deletion trunk/drivers/block/drbd/drbd_actlog.c
Original file line number Diff line number Diff line change
Expand Up @@ -702,6 +702,7 @@ static int w_update_odbm(struct drbd_work *w, int unused)
{
struct update_odbm_work *udw = container_of(w, struct update_odbm_work, w);
struct drbd_conf *mdev = w->mdev;
struct sib_info sib = { .sib_reason = SIB_SYNC_PROGRESS, };

if (!get_ldev(mdev)) {
if (__ratelimit(&drbd_ratelimit_state))
Expand All @@ -725,7 +726,7 @@ static int w_update_odbm(struct drbd_work *w, int unused)
break;
}
}
drbd_bcast_sync_progress(mdev);
drbd_bcast_event(mdev, &sib);

return 1;
}
Expand Down
36 changes: 17 additions & 19 deletions trunk/drivers/block/drbd/drbd_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include <net/tcp.h>
#include <linux/lru_cache.h>
#include <linux/prefetch.h>
#include <linux/drbd_genl_api.h>
#include <linux/drbd.h>
#include "drbd_state.h"

Expand All @@ -65,7 +66,6 @@
extern unsigned int minor_count;
extern int disable_sendpage;
extern int allow_oos;
extern unsigned int cn_idx;

#ifdef CONFIG_DRBD_FAULT_INJECTION
extern int enable_faults;
Expand Down Expand Up @@ -865,14 +865,6 @@ struct drbd_md {
*/
};

/* for sync_conf and other types... */
#define NL_PACKET(name, number, fields) struct name { fields };
#define NL_INTEGER(pn,pr,member) int member;
#define NL_INT64(pn,pr,member) __u64 member;
#define NL_BIT(pn,pr,member) unsigned member:1;
#define NL_STRING(pn,pr,member,len) unsigned char member[len]; int member ## _len;
#include "linux/drbd_nl.h"

struct drbd_backing_dev {
struct block_device *backing_bdev;
struct block_device *md_bdev;
Expand Down Expand Up @@ -1502,7 +1494,7 @@ enum drbd_ret_code conn_new_minor(struct drbd_tconn *tconn, unsigned int minor,
extern void drbd_free_mdev(struct drbd_conf *mdev);
extern void drbd_delete_device(unsigned int minor);

struct drbd_tconn *drbd_new_tconn(char *name);
struct drbd_tconn *drbd_new_tconn(const char *name);
extern void drbd_free_tconn(struct drbd_tconn *tconn);
struct drbd_tconn *conn_by_name(const char *name);

Expand Down Expand Up @@ -1679,16 +1671,22 @@ extern int __drbd_set_out_of_sync(struct drbd_conf *mdev, sector_t sector,
extern void drbd_al_apply_to_bm(struct drbd_conf *mdev);
extern void drbd_al_shrink(struct drbd_conf *mdev);


/* drbd_nl.c */

void drbd_nl_cleanup(void);
int __init drbd_nl_init(void);
void drbd_bcast_state(struct drbd_conf *mdev, union drbd_state);
void drbd_bcast_sync_progress(struct drbd_conf *mdev);
void drbd_bcast_ee(struct drbd_conf *, const char *, const int, const char *,
const char *, const struct drbd_peer_request *);

/* state info broadcast */
struct sib_info {
enum drbd_state_info_bcast_reason sib_reason;
union {
struct {
char *helper_name;
unsigned helper_exit_code;
};
struct {
union drbd_state os;
union drbd_state ns;
};
};
};
void drbd_bcast_event(struct drbd_conf *mdev, const struct sib_info *sib);

/*
* inline helper functions
Expand Down
27 changes: 16 additions & 11 deletions trunk/drivers/block/drbd/drbd_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ MODULE_PARM_DESC(allow_oos, "DONT USE!");
module_param(minor_count, uint, 0444);
module_param(disable_sendpage, bool, 0644);
module_param(allow_oos, bool, 0);
module_param(cn_idx, uint, 0444);
module_param(proc_details, int, 0644);

#ifdef CONFIG_DRBD_FAULT_INJECTION
Expand All @@ -108,7 +107,6 @@ module_param(fault_devs, int, 0644);
unsigned int minor_count = DRBD_MINOR_COUNT_DEF;
int disable_sendpage;
int allow_oos;
unsigned int cn_idx = CN_IDX_DRBD;
int proc_details; /* Detail level in proc drbd*/

/* Module parameter for setting the user mode helper program
Expand Down Expand Up @@ -2175,7 +2173,7 @@ static void drbd_cleanup(void)
if (drbd_proc)
remove_proc_entry("drbd", NULL);

drbd_nl_cleanup();
drbd_genl_unregister();

idr_for_each_entry(&minors, mdev, i)
drbd_delete_device(i);
Expand Down Expand Up @@ -2237,6 +2235,9 @@ struct drbd_tconn *conn_by_name(const char *name)
{
struct drbd_tconn *tconn;

if (!name || !name[0])
return NULL;

write_lock_irq(&global_state_lock);
list_for_each_entry(tconn, &drbd_tconns, all_tconn) {
if (!strcmp(tconn->name, name))
Expand All @@ -2248,7 +2249,7 @@ struct drbd_tconn *conn_by_name(const char *name)
return tconn;
}

struct drbd_tconn *drbd_new_tconn(char *name)
struct drbd_tconn *drbd_new_tconn(const char *name)
{
struct drbd_tconn *tconn;

Expand Down Expand Up @@ -2333,6 +2334,7 @@ enum drbd_ret_code conn_new_minor(struct drbd_tconn *tconn, unsigned int minor,

mdev->tconn = tconn;
mdev->minor = minor;
mdev->vnr = vnr;

drbd_init_set_defaults(mdev);

Expand Down Expand Up @@ -2461,10 +2463,6 @@ int __init drbd_init(void)
#endif
}

err = drbd_nl_init();
if (err)
return err;

err = register_blkdev(DRBD_MAJOR, "drbd");
if (err) {
printk(KERN_ERR
Expand All @@ -2473,6 +2471,13 @@ int __init drbd_init(void)
return err;
}

err = drbd_genl_register();
if (err) {
printk(KERN_ERR "drbd: unable to register generic netlink family\n");
goto fail;
}


register_reboot_notifier(&drbd_notifier);

/*
Expand All @@ -2487,12 +2492,12 @@ int __init drbd_init(void)

err = drbd_create_mempools();
if (err)
goto Enomem;
goto fail;

drbd_proc = proc_create_data("drbd", S_IFREG | S_IRUGO , NULL, &drbd_proc_fops, NULL);
if (!drbd_proc) {
printk(KERN_ERR "drbd: unable to register proc file\n");
goto Enomem;
goto fail;
}

rwlock_init(&global_state_lock);
Expand All @@ -2507,7 +2512,7 @@ int __init drbd_init(void)

return 0; /* Success! */

Enomem:
fail:
drbd_cleanup();
if (err == -ENOMEM)
/* currently always the case */
Expand Down
Loading

0 comments on commit 680f80f

Please sign in to comment.