blob: c64b34d8bedb1065b264edbaafe52be20fd4a05f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
Index: linux-2.4.24-2/arch/um/os-Linux/file.c
--- linux-2.4.24-2/arch/um/os-Linux/file.c 7 Apr 2004 20:44:49 -0000 1.29
+++ linux-2.4.24-2/arch/um/os-Linux/file.c 17 May 2004 18:35:49 -0000
@@ -688,6 +688,7 @@
int os_lock_file(int fd, int excl)
{
+#if USE_FCNTL_LOCK
int type = excl ? F_WRLCK : F_RDLCK;
struct flock lock = ((struct flock) { .l_type = type,
.l_whence = SEEK_SET,
@@ -710,6 +711,21 @@
err = save;
out:
return(err);
+#else
+ int type = excl ? LOCK_EX : LOCK_SH;
+ int err, save;
+
+ err = flock(fd, type | LOCK_NB);
+ if(!err)
+ goto out;
+
+ save = -errno;
+
+ printk("file already locked\n");
+ err = save;
+ out:
+ return(err);
+#endif
}
int os_ftruncate(int fd, __u64 size)
|