Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 347602
b: refs/heads/master
c: 83aff95
h: refs/heads/master
v: v3
  • Loading branch information
Sage Weil authored and Alex Elder committed Dec 13, 2012
1 parent 7c3fc33 commit e0a73df
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 50 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: cfc84c9f73ab8a6933bd4f36efac1196cddad581
refs/heads/master: 83aff95eb9d60aff5497e9f44a2ae906b86d8e88
2 changes: 0 additions & 2 deletions trunk/fs/ceph/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,8 +403,6 @@ static int ceph_show_options(struct seq_file *m, struct dentry *root)
seq_printf(m, ",mount_timeout=%d", opt->mount_timeout);
if (opt->osd_idle_ttl != CEPH_OSD_IDLE_TTL_DEFAULT)
seq_printf(m, ",osd_idle_ttl=%d", opt->osd_idle_ttl);
if (opt->osd_timeout != CEPH_OSD_TIMEOUT_DEFAULT)
seq_printf(m, ",osdtimeout=%d", opt->osd_timeout);
if (opt->osd_keepalive_timeout != CEPH_OSD_KEEPALIVE_DEFAULT)
seq_printf(m, ",osdkeepalivetimeout=%d",
opt->osd_keepalive_timeout);
Expand Down
2 changes: 0 additions & 2 deletions trunk/include/linux/ceph/libceph.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ struct ceph_options {
struct ceph_entity_addr my_addr;
int mount_timeout;
int osd_idle_ttl;
int osd_timeout;
int osd_keepalive_timeout;

/*
Expand All @@ -63,7 +62,6 @@ struct ceph_options {
* defaults
*/
#define CEPH_MOUNT_TIMEOUT_DEFAULT 60
#define CEPH_OSD_TIMEOUT_DEFAULT 60 /* seconds */
#define CEPH_OSD_KEEPALIVE_DEFAULT 5
#define CEPH_OSD_IDLE_TTL_DEFAULT 60

Expand Down
3 changes: 1 addition & 2 deletions trunk/net/ceph/ceph_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,6 @@ ceph_parse_options(char *options, const char *dev_name,

/* start with defaults */
opt->flags = CEPH_OPT_DEFAULT;
opt->osd_timeout = CEPH_OSD_TIMEOUT_DEFAULT;
opt->osd_keepalive_timeout = CEPH_OSD_KEEPALIVE_DEFAULT;
opt->mount_timeout = CEPH_MOUNT_TIMEOUT_DEFAULT; /* seconds */
opt->osd_idle_ttl = CEPH_OSD_IDLE_TTL_DEFAULT; /* seconds */
Expand Down Expand Up @@ -391,7 +390,7 @@ ceph_parse_options(char *options, const char *dev_name,

/* misc */
case Opt_osdtimeout:
opt->osd_timeout = intval;
pr_warning("ignoring deprecated osdtimeout option\n");
break;
case Opt_osdkeepalivetimeout:
opt->osd_keepalive_timeout = intval;
Expand Down
47 changes: 4 additions & 43 deletions trunk/net/ceph/osd_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -608,14 +608,6 @@ static void __kick_osd_requests(struct ceph_osd_client *osdc,
}
}

static void kick_osd_requests(struct ceph_osd_client *osdc,
struct ceph_osd *kickosd)
{
mutex_lock(&osdc->request_mutex);
__kick_osd_requests(osdc, kickosd);
mutex_unlock(&osdc->request_mutex);
}

/*
* If the osd connection drops, we need to resubmit all requests.
*/
Expand All @@ -629,7 +621,9 @@ static void osd_reset(struct ceph_connection *con)
dout("osd_reset osd%d\n", osd->o_osd);
osdc = osd->o_osdc;
down_read(&osdc->map_sem);
kick_osd_requests(osdc, osd);
mutex_lock(&osdc->request_mutex);
__kick_osd_requests(osdc, osd);
mutex_unlock(&osdc->request_mutex);
send_queued(osdc);
up_read(&osdc->map_sem);
}
Expand Down Expand Up @@ -1091,12 +1085,10 @@ static void handle_timeout(struct work_struct *work)
{
struct ceph_osd_client *osdc =
container_of(work, struct ceph_osd_client, timeout_work.work);
struct ceph_osd_request *req, *last_req = NULL;
struct ceph_osd_request *req;
struct ceph_osd *osd;
unsigned long timeout = osdc->client->options->osd_timeout * HZ;
unsigned long keepalive =
osdc->client->options->osd_keepalive_timeout * HZ;
unsigned long last_stamp = 0;
struct list_head slow_osds;
dout("timeout\n");
down_read(&osdc->map_sem);
Expand All @@ -1105,37 +1097,6 @@ static void handle_timeout(struct work_struct *work)

mutex_lock(&osdc->request_mutex);

/*
* reset osds that appear to be _really_ unresponsive. this
* is a failsafe measure.. we really shouldn't be getting to
* this point if the system is working properly. the monitors
* should mark the osd as failed and we should find out about
* it from an updated osd map.
*/
while (timeout && !list_empty(&osdc->req_lru)) {
req = list_entry(osdc->req_lru.next, struct ceph_osd_request,
r_req_lru_item);

/* hasn't been long enough since we sent it? */
if (time_before(jiffies, req->r_stamp + timeout))
break;

/* hasn't been long enough since it was acked? */
if (req->r_request->ack_stamp == 0 ||
time_before(jiffies, req->r_request->ack_stamp + timeout))
break;

BUG_ON(req == last_req && req->r_stamp == last_stamp);
last_req = req;
last_stamp = req->r_stamp;

osd = req->r_osd;
BUG_ON(!osd);
pr_warning(" tid %llu timed out on osd%d, will reset osd\n",
req->r_tid, osd->o_osd);
__kick_osd_requests(osdc, osd);
}

/*
* ping osds that are a bit slow. this ensures that if there
* is a break in the TCP connection we will notice, and reopen
Expand Down

0 comments on commit e0a73df

Please sign in to comment.