X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Fliblustreapi_hsm.c;h=0b12f373688f6544de6179be595d2a09c891c0df;hb=2fc4838533668135d2efe98b90e56a9ac5dadaea;hp=b7678d7b3be28e26f83ef967be0af6fd22fc63c3;hpb=62752bf3b143630560adfdb568606a661fdafafb;p=fs%2Flustre-release.git diff --git a/lustre/utils/liblustreapi_hsm.c b/lustre/utils/liblustreapi_hsm.c index b7678d7..0b12f37 100644 --- a/lustre/utils/liblustreapi_hsm.c +++ b/lustre/utils/liblustreapi_hsm.c @@ -472,9 +472,10 @@ out_free: */ int llapi_hsm_register_event_fifo(const char *path) { - int rc; int read_fd; struct stat statbuf; + struct sigaction ignore_action; + int rc; /* Create the FIFO if necessary. */ if ((mkfifo(path, 0644) < 0) && (errno != EEXIST)) { @@ -523,7 +524,10 @@ int llapi_hsm_register_event_fifo(const char *path) } /* Ignore SIGPIPEs -- can occur if the reader goes away. */ - signal(SIGPIPE, SIG_IGN); + memset(&ignore_action, 0, sizeof(ignore_action)); + ignore_action.sa_handler = SIG_IGN; + sigemptyset(&ignore_action.sa_mask); + sigaction(SIGPIPE, &ignore_action, NULL); return 0; } @@ -1180,13 +1184,14 @@ int llapi_hsm_action_end(struct hsm_copyaction_private **phcp, .lfu_ctime_nsec = hcp->stat.st_ctim.tv_nsec, }; - /* Set {a,m,c}time of volatile file to that of original. */ - if (ioctl(hcp->data_fd, LL_IOC_FUTIMES_3, &lfu) < 0) { + rc = fsync(hcp->data_fd); + if (rc < 0) { errval = -errno; goto end; } - rc = fsync(hcp->data_fd); + /* Set {a,m,c}time of volatile file to that of original. */ + rc = ioctl(hcp->data_fd, LL_IOC_FUTIMES_3, &lfu); if (rc < 0) { errval = -errno; goto end;