MS_DIRSYNC and MS_REC compat
It turns out that older versions of the glibc headers do not properly define MS_DIRSYNC despite it being explicitly mentioned in the man pages. They instead call it S_WRITE, so for system where this is not correct defined map MS_DIRSYNC to S_WRITE. At the time of this commit both Ubuntu Lucid, and Debian Squeeze both use the out of date glibc headers. As for MS_REC this field is also not available in the older headers. Since there is no obvious mapping in this case we simply disable the recursive mount option which used it.
This commit is contained in:
parent
1ac0ea38a5
commit
afffb5cd10
|
@ -3875,7 +3875,9 @@ static const option_map_t option_map[] = {
|
||||||
#endif
|
#endif
|
||||||
/* Valid options not found in mount(8) */
|
/* Valid options not found in mount(8) */
|
||||||
{ MNTOPT_BIND, MS_BIND },
|
{ MNTOPT_BIND, MS_BIND },
|
||||||
|
#ifdef MS_REC
|
||||||
{ MNTOPT_RBIND, MS_BIND|MS_REC },
|
{ MNTOPT_RBIND, MS_BIND|MS_REC },
|
||||||
|
#endif
|
||||||
{ MNTOPT_COMMENT, MS_COMMENT },
|
{ MNTOPT_COMMENT, MS_COMMENT },
|
||||||
{ MNTOPT_BOOTWAIT, MS_COMMENT },
|
{ MNTOPT_BOOTWAIT, MS_COMMENT },
|
||||||
{ MNTOPT_NOBOOTWAIT, MS_COMMENT },
|
{ MNTOPT_NOBOOTWAIT, MS_COMMENT },
|
||||||
|
|
|
@ -42,6 +42,15 @@
|
||||||
#define BLKGETSIZE64 _IOR(0x12, 114, size_t)
|
#define BLKGETSIZE64 _IOR(0x12, 114, size_t)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some old glibc headers don't correctly define MS_DIRSYNC and
|
||||||
|
* instead use the enum name S_WRITE. When using these older
|
||||||
|
* headers define MS_DIRSYNC to be S_WRITE.
|
||||||
|
*/
|
||||||
|
#if !defined(MS_DIRSYNC)
|
||||||
|
#define MS_DIRSYNC S_WRITE
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MS_USERS 0x40000000
|
#define MS_USERS 0x40000000
|
||||||
#define MS_OWNER 0x10000000
|
#define MS_OWNER 0x10000000
|
||||||
#define MS_GROUP 0x08000000
|
#define MS_GROUP 0x08000000
|
||||||
|
|
Loading…
Reference in New Issue