History log of /haiku/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.cpp
Revision Date Author Comments
# 1a3be0ad 19-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

Replace usages of B_FILE_NOT_FOUND in non-BeOS-API code.

B_FILE_NOT_FOUND was deprecated in BeOS R5 in favor of B_ENTRY_NOT_FOUND,
but it remained in Haiku and was never removed even conditionally, so
we have accumulated a number of usages of it.

This commit changes all the usages of it in new code, applications,
or anything else that BeOS applications will otherwise never see,
and so should be relatively safe.


# 0319710e 18-Nov-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

nfs4: Improve tracing when DEBUG. Always show NFS errors

Change-Id: Idd6904258c479dc3d188bf245b1bae0d3849820b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3397
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 469f13fd 25-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: support hard links properly

The main purpose of this patch is to prevent VFS from removing a vnode to early
what might have happened if the NFS client knew it had more than one name but
then one of them was deleted. Moreover, all discovered and still valid names
are stored what may be useful in proper file handle recovery when they are
volatile.

This patch fixes both #9558 and #9561.


# b3028596 18-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix memory leaks in case of errors while reading a directory

This fixes CID 991497.


# 246c199c 18-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix memory leaks in case of error in ReplyInterpreter::_DecodeAttrs()

This patch fixes CID 991505, 991504, 991502, 991500, 991499, 991496.


# 62e43541 18-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix wrong parenthesising in ReplyInterpreter::_FlattenPathname

This patch solves CID 990966.


# c5a88cf7 12-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: VFS uses signed offsets while NFS4 expects unsigned


# eed5b716 19-Dec-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix problems with reading directory entries
* Inode::ReadDir missed an entry when given buffer was too small
* Each OpenDirCookie now has its own copy of directory snapshot what
would prevent Inode::ReadDir from accessing freed memory when removing
files and reading directory entries simultaneously
* Several minor issues fixed


# bcb18a9b 31-Oct-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4, dns_resolver: fix numerous style violations


# 7c6cdb83 16-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix node removal


# 870528b7 15-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix gcc4 warnings


# 70472e11 14-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add basic emulation of named attributes


# b1fd656d 09-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix server reboot recovery


# 52aaad17 05-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Use one open state per inode


# 99092223 05-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Use global open owner, check whether delegation was granted


# 36577ed5 26-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Use unstable writes and commit before close


# df6a5eae 24-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix several issues introduced in previous commits


# 09dbdd36 19-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add full directory cache implementation


# 7b6f80fe 18-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Do not let local changes invalidate cache


# 75fe7b90 18-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add directory and name basic implementation


# 00a8558c 08-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Rename Filehandle to FileHandle and Filesystem to FileSystem


# b2cea80c 03-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add id mapper


# 62869605 02-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add proper lock owners management


# 4318f15f 27-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Check for reace conditions in filehandle recovery


# f7bf941a 27-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Verify inode number before opening a file


# 7d0b8c97 27-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add support for file locking


# 1c97a367 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add support for O_NONBLOCK mode


# abba2fdd 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add write_stat() hook


# e27b9ff7 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Improve handling errors in NFS replies


# e36a5442 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add write() hook


# f5baf2ef 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add create_symlink() hook


# c0de7aca 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add link() hook


# 6fb3845b 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add unlink() and remove_dir() hooks


# 1ec6b0c1 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add rename() hook


# be4c74ea 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: close*() should wake all blocked operations


# 19df56ac 20-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add support for server migration


# 47c4ae37 20-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix ReadDir() bug when skipping inodes


# 963a5e65 20-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Forbid accessing multiple NFS4 filesystems from one local mount

Haiku assumes that a pair dev_t:ino_t uniquely identifies a file. That may not be the case if we allow multiple filesystems share one dev_t.


# 941416ff 16-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read_fs_info hook


# 462a54ce 13-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Let ReplyInterpreter provide original NFS4 error codes


# f2da914d 12-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read_symlink() hook


# 27a291de 12-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Renew all owned and used leases


# 96e3dbc2 11-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Let stat() retrieve access, change, etc dates


# 01d6381d 11-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add Request class for better handling of NFS4 requests


# 5310ed9e 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix off-by-one bug in READDIR decoding


# 60a8140d 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add close() and free_cookie() hooks


# 2f2e57d0 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read() hook


# 2a292557 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add open() hook


# f29ac4af 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: readdir() should not read more than requested

Additionally, file attribute decoding checks more strictly whether
received data are sane.


# 4b48348f 31-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read_dir() hook


# 212de720 30-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add basic nfs4_read_stat() procedure

Not all data are retrieved and there is a room for improvement in handling
situations when server does not provide necessary information.


# 196403c9 29-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add NFS4 reply interpreter

Currently supported operations are: ACCESS, GETATTR (partially), GETFH,
LOOKUP and PUTROOTFH.


# 469f13fdfe886f0eca9cc9204ad2e3da7377f7ba 25-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: support hard links properly

The main purpose of this patch is to prevent VFS from removing a vnode to early
what might have happened if the NFS client knew it had more than one name but
then one of them was deleted. Moreover, all discovered and still valid names
are stored what may be useful in proper file handle recovery when they are
volatile.

This patch fixes both #9558 and #9561.


# b302859608dd492877a0c5b492cf7d81953f0c8b 18-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix memory leaks in case of errors while reading a directory

This fixes CID 991497.


# 246c199c405c382ff1260fc30c8ab48b992a2a5c 18-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix memory leaks in case of error in ReplyInterpreter::_DecodeAttrs()

This patch fixes CID 991505, 991504, 991502, 991500, 991499, 991496.


# 62e43541d730ae689710dbe1ddcd022866d67e72 18-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix wrong parenthesising in ReplyInterpreter::_FlattenPathname

This patch solves CID 990966.


# c5a88cf7e6c5f032e1aecea28cf3d90d0c1b7310 12-Mar-2013 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: VFS uses signed offsets while NFS4 expects unsigned


# eed5b716d0d47b766659295406c54f910dc1a092 19-Dec-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix problems with reading directory entries
* Inode::ReadDir missed an entry when given buffer was too small
* Each OpenDirCookie now has its own copy of directory snapshot what
would prevent Inode::ReadDir from accessing freed memory when removing
files and reading directory entries simultaneously
* Several minor issues fixed


# bcb18a9b361caf5ec949023dce39b831709a917d 31-Oct-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4, dns_resolver: fix numerous style violations


# 7c6cdb836049521a65ae47018e15020b1701dc5c 16-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix node removal


# 870528b79923b065c9d04bc598b43a518f3cfafa 15-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix gcc4 warnings


# 70472e11d37500a8cb434906f20254046bef0f5e 14-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add basic emulation of named attributes


# b1fd656d454ab89fbfdac09fda1b6aafd81bbe89 09-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix server reboot recovery


# 52aaad172fd93ba9b286d237dd299746e6458e1b 05-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Use one open state per inode


# 990922235b448d860c0dbcf596c21bfdbeab8831 05-Aug-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Use global open owner, check whether delegation was granted


# 36577ed54ba11c2e9b1a61f66cc2a704e2af7697 26-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Use unstable writes and commit before close


# df6a5eaefa0e549032f0a58e9191679f2c1eb60c 24-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix several issues introduced in previous commits


# 09dbdd3644142673a8df63ae77ff8ccd4524c835 19-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add full directory cache implementation


# 7b6f80fee2eee9724b8146cc480c0ffe87b25c32 18-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Do not let local changes invalidate cache


# 75fe7b90bbb751ea161dc6d4c81a3f8e694047b5 18-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add directory and name basic implementation


# 00a8558cc75d9aee84f6d9b34c28d6706952558c 08-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Rename Filehandle to FileHandle and Filesystem to FileSystem


# b2cea80ce5328c07e9f5c42c72213c186737aea5 03-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add id mapper


# 62869605c565855e3293809a9974846fa50c423f 02-Jul-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add proper lock owners management


# 4318f15fa156865c22c3fc24250c582d82096975 27-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Check for reace conditions in filehandle recovery


# f7bf941a8c770ed5963f1598f268fec16908827e 27-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Verify inode number before opening a file


# 7d0b8c97865cb6a2ab1f534305913343de78ac50 27-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add support for file locking


# 1c97a367c56e45ea8121ce39f1f9f1639585ac2a 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add support for O_NONBLOCK mode


# abba2fddf17a30a2097f7e04c57b67b50f708ece 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add write_stat() hook


# e27b9ff74286c8ea666594ea0f6af5207ccca4ee 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Improve handling errors in NFS replies


# e36a54427c52d685efec2862cba812ac46a15ad4 26-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add write() hook


# f5baf2ef9f3afe4df5e1565ba2651a0ae3ea38a9 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add create_symlink() hook


# c0de7aca1ccdb82519b67c63dfc5f4586fb9b368 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add link() hook


# 6fb3845b38c8ab73fe79bc92a16604bfd3b9d209 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add unlink() and remove_dir() hooks


# 1ec6b0c1f74d5cc239bf210740ad35b9479b8ef6 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add rename() hook


# be4c74ead31246bd9b332f83a9e298969385fc4e 21-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: close*() should wake all blocked operations


# 19df56ac66b03acd52570ed050113652a5e93606 20-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add support for server migration


# 47c4ae37512708eb7cd2e8c05ad60e196e7764ad 20-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix ReadDir() bug when skipping inodes


# 963a5e658a898f898f8c07c56d8f29a31d01b82a 20-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Forbid accessing multiple NFS4 filesystems from one local mount

Haiku assumes that a pair dev_t:ino_t uniquely identifies a file. That may not be the case if we allow multiple filesystems share one dev_t.


# 941416ff8b37ee51eb663cb75c4d94e5d668766a 16-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read_fs_info hook


# 462a54ced847bd3550591ca74ae25143d0444e77 13-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Let ReplyInterpreter provide original NFS4 error codes


# f2da914d39a0dd3e6819bd7ddca4c4f95f9b9253 12-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read_symlink() hook


# 27a291de54f614424392492632152093a84e2810 12-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Renew all owned and used leases


# 96e3dbc2d0e58ab0798ea433242696d982057fb6 11-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Let stat() retrieve access, change, etc dates


# 01d6381d20122ada695eefd7696b156800808662 11-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add Request class for better handling of NFS4 requests


# 5310ed9ee18ae2c2011afa76e1a6aaec6162ed00 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Fix off-by-one bug in READDIR decoding


# 60a8140ded7da888e1ebf0d03ac6c20130b08aeb 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add close() and free_cookie() hooks


# 2f2e57d03557301f838496118884de305d6abde8 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read() hook


# 2a292557d4bffd34841c3db2ee1095a1a51f0274 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add open() hook


# f29ac4afd944ae3c279fae69ad325a3976b5fa82 05-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: readdir() should not read more than requested

Additionally, file attribute decoding checks more strictly whether
received data are sane.


# 4b48348f9747400f0a2b63544e2806b1e6943215 31-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add read_dir() hook


# 212de7205336baeee1889f9d5fb595e028b19a83 30-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add basic nfs4_read_stat() procedure

Not all data are retrieved and there is a room for improvement in handling
situations when server does not provide necessary information.


# 196403c9abaa7976cc2af2267230208533b5fe61 29-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Add NFS4 reply interpreter

Currently supported operations are: ACCESS, GETATTR (partially), GETFH,
LOOKUP and PUTROOTFH.