projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Port: Add Solaris dirent compat
[lttng-tools.git]
/
src
/
common
/
utils.c
diff --git
a/src/common/utils.c
b/src/common/utils.c
index ca4eb44481c7d3e7fc90500c91112f50aaacef09..e3f1bf7e62ad8109db5cbefd211f81484f02d737 100644
(file)
--- a/
src/common/utils.c
+++ b/
src/common/utils.c
@@
-17,7
+17,6
@@
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#define _GNU_SOURCE
#define _LGPL_SOURCE
#include <assert.h>
#include <ctype.h>
#define _LGPL_SOURCE
#include <assert.h>
#include <ctype.h>
@@
-31,12
+30,12
@@
#include <grp.h>
#include <pwd.h>
#include <sys/file.h>
#include <grp.h>
#include <pwd.h>
#include <sys/file.h>
-#include <dirent.h>
#include <common/common.h>
#include <common/runas.h>
#include <common/compat/getenv.h>
#include <common/compat/string.h>
#include <common/common.h>
#include <common/runas.h>
#include <common/compat/getenv.h>
#include <common/compat/string.h>
+#include <common/compat/dirent.h>
#include "utils.h"
#include "defaults.h"
#include "utils.h"
#include "defaults.h"
@@
-504,11
+503,13
@@
int utils_create_lock_file(const char *filepath)
{
int ret;
int fd;
{
int ret;
int fd;
+ struct flock lock;
assert(filepath);
assert(filepath);
- fd = open(filepath, O_CREAT,
- O_WRONLY | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
+ memset(&lock, 0, sizeof(lock));
+ fd = open(filepath, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR |
+ S_IRGRP | S_IWGRP);
if (fd < 0) {
PERROR("open lock file %s", filepath);
ret = -1;
if (fd < 0) {
PERROR("open lock file %s", filepath);
ret = -1;
@@
-520,8
+521,12
@@
int utils_create_lock_file(const char *filepath)
* already a process using the same lock file running
* and we should exit.
*/
* already a process using the same lock file running
* and we should exit.
*/
- ret = flock(fd, LOCK_EX | LOCK_NB);
- if (ret) {
+ lock.l_whence = SEEK_SET;
+ lock.l_type = F_WRLCK;
+
+ ret = fcntl(fd, F_SETLK, &lock);
+ if (ret == -1) {
+ PERROR("fcntl lock file");
ERR("Could not get lock file %s, another instance is running.",
filepath);
if (close(fd)) {
ERR("Could not get lock file %s, another instance is running.",
filepath);
if (close(fd)) {
@@
-1207,9
+1212,9
@@
int utils_recursive_rmdir(const char *path)
PERROR("Cannot open '%s' path", path);
return -1;
}
PERROR("Cannot open '%s' path", path);
return -1;
}
- dir_fd = dirfd(dir);
+ dir_fd =
lttng_
dirfd(dir);
if (dir_fd < 0) {
if (dir_fd < 0) {
- PERROR("dirfd");
+ PERROR("
lttng_
dirfd");
return -1;
}
return -1;
}
This page took
0.02864 seconds
and
4
git commands to generate.