Workaround for image cache stuff on NFS mounts for linux (Jan Nordholz).
SVN revision: 13176
This commit is contained in:
parent
71b5505a87
commit
9a8416a5f8
1
src/E.h
1
src/E.h
|
@ -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);
|
||||
|
|
25
src/file.c
25
src/file.c
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue