diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-05-22 18:48:02 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2019-05-22 18:56:24 +0200 |
commit | 5087825ea76c2642da970c07019c1f86cea36ce5 (patch) | |
tree | f5025cff649b025c10ae14468cbca2fb69b299a2 /src/journal/journal-file.c | |
parent | 9e099c9fd8283f263650a7b357f0fae609518678 (diff) | |
download | systemd-5087825ea76c2642da970c07019c1f86cea36ce5.tar.gz |
journald: output a proper error message when the journal is used on fs that doesn't do mmap() properly
Prompted by:
https://lists.freedesktop.org/archives/systemd-devel/2019-May/042708.html
Diffstat (limited to 'src/journal/journal-file.c')
-rw-r--r-- | src/journal/journal-file.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 3e285021bd..c38c3e7c14 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -3323,6 +3323,13 @@ int journal_file_open( } r = mmap_cache_get(f->mmap, f->cache_fd, f->prot, CONTEXT_HEADER, true, 0, PAGE_ALIGN(sizeof(Header)), &f->last_stat, &h, NULL); + if (r == -EINVAL) { + /* Some file systems (jffs2 or p9fs) don't support mmap() properly (or only read-only + * mmap()), and return EINVAL in that case. Let's propagate that as a more recognizable error + * code. */ + r = -EAFNOSUPPORT; + goto fail; + } if (r < 0) goto fail; |