Workaround for image cache stuff on NFS mounts for linux (Jan Nordholz).

SVN revision: 13176
This commit is contained in:
Kim Woelders 2005-02-01 21:38:35 +00:00
parent 71b5505a87
commit 9a8416a5f8
3 changed files with 27 additions and 3 deletions

View File

@ -1701,6 +1701,7 @@ void E_cp(const char *s, const char *ss);
time_t moddate(const char *s);
int filesize(const char *s);
int fileinode(const char *s);
int filedev_map(int dev);
int filedev(const char *s);
void E_cd(const char *s);
char *cwd(void);

View File

@ -287,6 +287,29 @@ fileinode(const char *s)
return (int)st.st_ino;
}
int
filedev_map(int dev)
{
#ifdef __linux__
/* device numbers in the anonymous range can't be relied
* upon, so map them all on a single one */
switch (dev >> 8)
{
default:
return dev;
break;
case 0:
case 144:
case 145:
case 146:
return 1;
break;
}
#else
return dev;
#endif
}
int
filedev(const char *s)
{
@ -296,7 +319,7 @@ filedev(const char *s)
return 0;
if (stat(s, &st) < 0)
return 0;
return (int)st.st_dev;
return filedev_map((int)st.st_dev);
}
void

View File

@ -68,7 +68,7 @@ MenuCreateFromDirectory(const char *name, Menu * parent, MenuStyle * ms,
int aa, bb, cc;
aa = (int)st.st_ino;
bb = (int)st.st_dev;
bb = filedev_map((int)st.st_dev);
cc = 0;
if (st.st_mtime > st.st_ctime)
cc = st.st_mtime;
@ -189,7 +189,7 @@ MenuCreateFromDirectory(const char *name, Menu * parent, MenuStyle * ms,
int aa, bb, cc;
aa = (int)st.st_ino;
bb = (int)st.st_dev;
bb = filedev_map((int)st.st_dev);
cc = 0;
if (st.st_mtime > st.st_ctime)
cc = st.st_mtime;