~ubuntu-branches/debian/jessie/lvm2/jessie

« back to all changes in this revision

Viewing changes to daemons/cmirrord/local.c

  • Committer: Package Import Robot
  • Author(s): Bastian Blank
  • Date: 2013-08-27 13:13:17 UTC
  • mfrom: (30.1.6 sid)
  • Revision ID: package-import@ubuntu.com-20130827131317-4s1pa4b2trpl3xiz
Tags: 2.02.98-6
* Update init script:
  - Use auto-activation.
  - Drop manual loading of dm-mod.
* Fix udev rules:
  - Re-add another oversight.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
#define CN_VAL_DM_USERSPACE_LOG         0x1
28
28
#endif
29
29
 
30
 
static int cn_fd;  /* Connector (netlink) socket fd */
 
30
static int cn_fd = -1;  /* Connector (netlink) socket fd */
31
31
static char recv_buf[2048];
32
32
static char send_buf[2048];
33
33
 
237
237
        case DM_ULOG_GET_REGION_SIZE:
238
238
        case DM_ULOG_IN_SYNC:
239
239
        case DM_ULOG_GET_SYNC_COUNT:
240
 
        case DM_ULOG_STATUS_INFO:
241
240
        case DM_ULOG_STATUS_TABLE:
242
241
        case DM_ULOG_PRESUSPEND:
243
242
                /* We do not specify ourselves as server here */
249
248
                if (r)
250
249
                        LOG_ERROR("Failed to respond to kernel [%s]",
251
250
                                  RQ_TYPE(u_rq->request_type));
252
 
                        
 
251
 
253
252
                break;
254
253
        case DM_ULOG_RESUME:
255
254
                /*
273
272
        case DM_ULOG_MARK_REGION:
274
273
        case DM_ULOG_GET_RESYNC_WORK:
275
274
        case DM_ULOG_SET_REGION_SYNC:
 
275
        case DM_ULOG_STATUS_INFO:
276
276
        case DM_ULOG_IS_REMOTE_RECOVERING:
277
277
        case DM_ULOG_POSTSUSPEND:
278
278
                r = cluster_send(rq);
279
279
                if (r) {
280
280
                        u_rq->data_size = 0;
281
281
                        u_rq->error = r;
282
 
                        kernel_send(u_rq);
 
282
                        if (kernel_send(u_rq))
 
283
                                LOG_ERROR("Failed to respond to kernel [%s]",
 
284
                                          RQ_TYPE(u_rq->request_type));
283
285
                }
284
286
 
285
287
                break;
384
386
 
385
387
        r = bind(cn_fd, (struct sockaddr *) &addr, sizeof(addr));
386
388
        if (r < 0) {
387
 
                close(cn_fd);
 
389
                if (close(cn_fd))
 
390
                        LOG_ERROR("Failed to close socket: %s",
 
391
                                  strerror(errno));
388
392
                return EXIT_KERNEL_BIND;
389
393
        }
390
394
 
391
395
        opt = addr.nl_groups;
392
396
        r = setsockopt(cn_fd, 270, NETLINK_ADD_MEMBERSHIP, &opt, sizeof(opt));
393
397
        if (r) {
394
 
                close(cn_fd);
 
398
                if (close(cn_fd))
 
399
                        LOG_ERROR("Failed to close socket: %s",
 
400
                                  strerror(errno));
395
401
                return EXIT_KERNEL_SETSOCKOPT;
396
402
        }
397
403
 
412
418
void cleanup_local(void)
413
419
{
414
420
        links_unregister(cn_fd);
415
 
        close(cn_fd);
 
421
        if (cn_fd >= 0 && close(cn_fd))
 
422
                LOG_ERROR("Failed to close socket: %s",
 
423
                          strerror(errno));
416
424
}