-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* GPL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
" d mkdir\n"
" D open(O_DIRECTORY)\n"
" f statfs\n"
+" G gid get grouplock\n"
+" g gid put grouplock\n"
" L link\n"
" l symlink\n"
" m mknod\n"
}
#define POP_ARG() (pop_arg(argc, argv))
-#define min(a,b) ((a)>(b)?(b):(a))
int main(int argc, char **argv)
{
int flags;
int save_errno;
int verbose = 0;
+ int gid = 0;
if (argc < 3) {
fprintf(stderr, usage, argv[0]);
exit(save_errno);
}
break;
+ case 'G':
+ gid = atoi(commands+1);
+ if (ioctl(fd, LL_IOC_GROUP_LOCK, gid) == -1) {
+ save_errno = errno;
+ perror("ioctl(GROUP_LOCK)");
+ exit(save_errno);
+ }
+ break;
+ case 'g':
+ gid = atoi(commands+1);
+ if (ioctl(fd, LL_IOC_GROUP_UNLOCK, gid) == -1) {
+ save_errno = errno;
+ perror("ioctl(GROUP_UNLOCK)");
+ exit(save_errno);
+ }
+ break;
case 'l':
newfile = POP_ARG();
if (!newfile)
case 'o':
len = get_flags(commands+1, &flags);
commands += len;
- fd = open(fname, flags);
+ if (flags & O_CREAT)
+ fd = open(fname, flags, 0666);
+ else
+ fd = open(fname, flags);
if (fd == -1) {
save_errno = errno;
perror("open");