ocfs2: for SEEK_DATA/SEEK_HOLE, return internal error unchanged if ocfs2_get_clusters_nocache() or ocfs2_inode_lock() call failed.
PATCH 1/1 ocfs2: for SEEK_DATA/SEEK_HOLE, return internal error unchanged if ocfs2_get_clusters_nocache() or ocfs2_inode_lock() call failed.
Hello,
Since ENXIO only means "offset beyond EOF" for SEEK_DATA/SEEK_HOLE,
Hence we should return the internal error unchanged if ocfs2_inode_lock() or ocfs2_get_clusters_nocache() call failed rather than ENXIO.
Otherwise, it will confuse the user applications when they trying to understand the root cause.
Thanks Dave for pointing this out.
Thanks,
-Jeff
--- fs/ocfs2/extent_map.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
fs/ocfs2/extent_map.c +0 -2
@@ -923,8 +923,6 @@ out_unlock:ocfs2_inode_unlock (inode,0 ); out: -if (ret && ret != -ENXIO ) - ret = -ENXIO ;return ret; }
Signature · 1 line
1.7.9
PATCH 1/1 ocfs2: for SEEK_DATA/SEEK_HOLE, return internal error unchanged if ocfs2_get_clusters_nocache() or ocfs2_inode_lock() call failed.
Quoted 33 lines · Jeff Liu
Hello,
Since ENXIO only means "offset beyond EOF" for SEEK_DATA/SEEK_HOLE,
Hence we should return the internal error unchanged ifocfs2_inode_lock()orocfs2_get_clusters_nocache()call failed rather than ENXIO.
Otherwise, it will confuse the user applications when they trying to understand the root cause.Thanks Dave for pointing this out.
Thanks,
-JeffCc Dave Chinner<[email protected]>Signed-off-by Jie Liu<[email protected]>--- fs/ocfs2/extent_map.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)fs/ocfs2/extent_map.c +0
-2@@ -923,8 +923,6 @@ out_unlock:ocfs2_inode_unlock (inode,0 ); out: -if (ret&& ret != -ENXIO ) - ret = -ENXIO ;return ret; }
Joel Becker
maintainerPATCH 1/1 ocfs2: for SEEK_DATA/SEEK_HOLE, return internal error unchanged if ocfs2_get_clusters_nocache() or ocfs2_inode_lock() call failed.
In reply to Jeff LiuQuoted 7 lines · Jeff Liu
Hello,
Since ENXIO only means "offset beyond EOF" for SEEK_DATA/SEEK_HOLE,
Hence we should return the internal error unchanged ifocfs2_inode_lock()orocfs2_get_clusters_nocache()call failed rather than ENXIO.
Otherwise, it will confuse the user applications when they trying to understand the root cause.
Quoted 8 lines
Thanks Dave for pointing this out.
Thanks,
-JeffCc Dave Chinner <[email protected]>Signed-off-by Jie Liu <[email protected]>
This patch is now (finally) part of the 'fixes' branch of ocfs2.git.
Joel
Quoted 25 lines
--- fs/ocfs2/extent_map.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)fs/ocfs2/extent_map.c +0
-2@@ -923,8 +923,6 @@ out_unlock:ocfs2_inode_unlock (inode,0 ); out: -if (ret && ret != -ENXIO ) - ret = -ENXIO ;return ret; }Signature · 6 lines
1.7.9 _______________________________________________ Ocfs2-devel mailing list Ocfs2-devel at oss.oracle.com http://oss.oracle.com/mailman/listinfo/ocfs2-devel
Signature · 6 lines
"Nearly all men can stand adversity, but if you really want to test a man's character, give him power." - Abraham Lincoln http://www.jlbec.org/ jlbec at evilplan.org