aboutsummaryrefslogtreecommitdiffstats
path: root/plpnfsd/mp_pfs_ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'plpnfsd/mp_pfs_ops.c')
-rw-r--r--plpnfsd/mp_pfs_ops.c48
1 files changed, 28 insertions, 20 deletions
diff --git a/plpnfsd/mp_pfs_ops.c b/plpnfsd/mp_pfs_ops.c
index 669d435..71ed2e9 100644
--- a/plpnfsd/mp_pfs_ops.c
+++ b/plpnfsd/mp_pfs_ops.c
@@ -106,29 +106,35 @@ attr2pattr(long oattr, long nattr, long *psisattr, long *psidattr)
* work properly
*/
*psisattr = *psidattr = 0;
+ if ((oattr & 0400) != (nattr & 0400)) {
+ if (nattr & 0400) /* readable */
+ *psidattr |= PSI_A_READ;
+ else
+ *psisattr |= PSI_A_READ;
+ }
if ((oattr & 0200) != (nattr & 0200)) {
if (nattr & 0200) /* readonly */
- *psidattr |= 0x01;
+ *psidattr |= PSI_A_RDONLY;
else
- *psisattr |= 0x01;
+ *psisattr |= PSI_A_RDONLY;
}
if ((oattr & 0020) != (nattr & 0020)) {
if (nattr & 0020) /* group-write -> archive */
- *psisattr |= 0x20;
+ *psisattr |= PSI_A_ARCHIVE;
else
- *psidattr |= 0x20;
+ *psidattr |= PSI_A_ARCHIVE;
}
if ((oattr & 0004) != (nattr & 0004)) {
if (nattr & 0004) /* Not world-read -> hidden */
- *psidattr |= 0x02;
+ *psidattr |= PSI_A_HIDDEN;
else
- *psisattr |= 0x02;
+ *psisattr |= PSI_A_HIDDEN;
}
if ((oattr & 0002) != (nattr & 0002)) {
if (nattr & 0002) /* world-write -> system */
- *psisattr |= 0x04;
+ *psisattr |= PSI_A_SYSTEM;
else
- *psidattr |= 0x04;
+ *psidattr |= PSI_A_SYSTEM;
}
}
@@ -137,7 +143,7 @@ dpattr2attr(long psiattr, long size, long ftime, fattr *fp, int inode)
{
bzero((char *) fp, sizeof(*fp));
- if (psiattr & 0x10) {
+ if (psiattr & PSI_A_DIR) {
fp->type = NFDIR;
fp->mode = NFSMODE_DIR | 0700;
/*
@@ -159,17 +165,18 @@ dpattr2attr(long psiattr, long size, long ftime, fattr *fp, int inode)
* Following flags have to be set in order to let backups
* work properly
*/
+ if (psiattr & PSI_A_READ)
fp->mode |= 0400; /* File readable (?) */
- if (!(psiattr & 0x01))
+ if (!(psiattr & PSI_A_RDONLY))
fp->mode |= 0200; /* File writeable */
/* fp->mode |= 0100; File executable */
- if (!(psiattr & 0x02))
+ if (!(psiattr & PSI_A_HIDDEN))
fp->mode |= 0004; /* Not Hidden <-> world read */
- if (psiattr & 0x04)
+ if (psiattr & PSI_A_SYSTEM)
fp->mode |= 0002; /* System <-> world write */
- if (psiattr & 0x40)
+ if (psiattr & PSI_A_VOLUME)
fp->mode |= 0001; /* Volume <-> world exec */
- if (psiattr & 0x20)
+ if (psiattr & PSI_A_ARCHIVE)
fp->mode |= 0020; /* Modified <-> group write */
/* fp->mode |= 0040; Byte <-> group read */
/* fp->mode |= 0010; Text <-> group exec */
@@ -189,7 +196,7 @@ pattr2attr(long psiattr, long size, long ftime, fattr *fp, unsigned char *fh)
{
bzero((char *) fp, sizeof(*fp));
- if (psiattr & 0x10) {
+ if (psiattr & PSI_A_DIR) {
fp->type = NFDIR;
fp->mode = NFSMODE_DIR | 0700;
/*
@@ -211,17 +218,18 @@ pattr2attr(long psiattr, long size, long ftime, fattr *fp, unsigned char *fh)
* Following flags have to be set in order to let backups
* work properly
*/
+ if (psiattr & PSI_A_READ)
fp->mode |= 0400; /* File readable (?) */
- if (!(psiattr & 0x01))
+ if (!(psiattr & PSI_A_RDONLY))
fp->mode |= 0200; /* File writeable */
/* fp->mode |= 0100; File executable */
- if (!(psiattr & 0x02))
+ if (!(psiattr & PSI_A_HIDDEN))
fp->mode |= 0004; /* Not Hidden <-> world read */
- if (psiattr & 0x04)
+ if (psiattr & PSI_A_SYSTEM)
fp->mode |= 0002; /* System <-> world write */
- if (psiattr & 0x40)
+ if (psiattr & PSI_A_VOLUME)
fp->mode |= 0001; /* Volume <-> world exec */
- if (psiattr & 0x20)
+ if (psiattr & PSI_A_ARCHIVE)
fp->mode |= 0020; /* Modified <-> group write */
/* fp->mode |= 0040; Byte <-> group read */
/* fp->mode |= 0010; Text <-> group exec */