ceph: Don't forget the 'up_read(&osdc->map_sem)' if met error.
PATCH 1/1 ceph: Don't forget the 'up_read(&osdc->map_sem)' if met error.
Signed-off-by Jianpeng Ma <[email protected]>
--- fs/ceph/ioctl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
fs/ceph/ioctl.c +3 -1
@@ -196,8 +196,10 @@ static long ceph_ioctl_get_dataloc(struct file *file, void __user *arg) r =ceph_calc_file_object_mapping (&ci->i_layout, dl.file_offset, len, &dl.object_no, &dl.object_offset, &olen); -if (r <0 ) +if (r <0 ) { +up_read (&osdc->map_sem);return -EIO ; + } dl.file_offset -= dl.object_offset; dl.object_size =ceph_file_layout_object_size (ci->i_layout); dl.block_size =ceph_file_layout_su (ci->i_layout);
Signature · 1 line
1.8.1.2
Sage Weil
AppliedApplied, thanks!
sage
Quoted 23 lines · majianpeng
Signed-off-by Jianpeng Ma <[email protected]>--- fs/ceph/ioctl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)fs/ceph/ioctl.c +3
-1@@ -196,8 +196,10 @@ static long ceph_ioctl_get_dataloc(struct file *file, void __user *arg) r =ceph_calc_file_object_mapping (&ci->i_layout, dl.file_offset, len, &dl.object_no, &dl.object_offset, &olen); -if (r <0 ) +if (r <0 ) { +up_read (&osdc->map_sem);return -EIO ; + } dl.file_offset -= dl.object_offset; dl.object_size =ceph_file_layout_object_size (ci->i_layout); dl.block_size =ceph_file_layout_su (ci->i_layout);Signature · 1 line
1.8.1.2