From 130697b8b706432153d9a0fda49b896065289aaa Mon Sep 17 00:00:00 2001 From: Jiffin Tony Thottan Date: Tue, 11 Aug 2015 16:00:47 +0530 Subject: libgfapi: adding 'follow' flag to glfs_h_lookupat() This patch is backport of http://review.gluster.org/#/c/11883/ Previously glfs_h_lookupat won't follow the symlink, this patch introduces new flag `follow` which will resolve the same. Applications linking against the new library will need to use the new glfs_h_lookupat API call. In order to stay compatible with existing binaries that use the previous glfs_h_lookupat() function, the old symbol needs to stay available. Verification that there are two versions of glfs_h_lookupat: $ objdump -T /usr/lib64/libgfapi.so.0 | grep -w glfs_h_lookupat 0000000000015070 g DF .text 000000000000021e GFAPI_3.7.4 glfs_h_lookupat 0000000000015290 g DF .text 0000000000000008 (GFAPI_3.4.2) glfs_h_lookupat Testing with a binary (based on anonymous_fd_read_write.c from ./tests/) that was linked against the old library: $ objdump -T ./lookupat | grep -w glfs_h_lookupat 0000000000000000 DF *UND* 0000000000000000 GFAPI_3.4.2 glfs_h_lookupat Enable debugging for 'ld.so' so that we can check that the GFAPI_3.4.2 version of the symbol gets loaded: $ export LD_DEBUG_OUTPUT=lookupat.ld.log LD_DEBUG=all $ ./lookupat $ grep -w glfs_h_lookupat lookupat.ld.log.2543 2543: symbol=glfs_h_lookupat; lookup in file=./lookupat [0] 2543: symbol=glfs_h_lookupat; lookup in file=/lib64/libgfapi.so.0 [0] 2543: binding file ./lookupat [0] to /lib64/libgfapi.so.0 [0]: normal symbol `glfs_h_lookupat' [GFAPI_3.4.2] This change has been successfully cherry-picked as 1ead86a8bcbfe4045729466e4b98f765f3c13c8d in master Upstream reference >Change-Id: I8bf9b1c19a0585f681bc1a7f84aad1ccd0f75f6a >BUG: 1252410 >Signed-off-by: Jiffin Tony Thottan >Signed-off-by: Niels de Vos >Reviewed-on: http://review.gluster.org/11883 >Reviewed-by: soumya k >Reviewed-by: Kaleb KEITHLEY >Tested-by: NetBSD Build System Signed-off-by: Jiffin Tony Thottan Change-Id: Idbbf0cd6802f86c53b16377d90d08ff6d99e7b08 BUG: 1256616 Reviewed-on: http://review.gluster.org/12009 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY --- api/src/gfapi.map | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'api/src/gfapi.map') diff --git a/api/src/gfapi.map b/api/src/gfapi.map index 48863985135..d42ae2b97af 100644 --- a/api/src/gfapi.map +++ b/api/src/gfapi.map @@ -98,7 +98,6 @@ GFAPI_3.4.2 { glfs_setfsuid; glfs_setfsgid; glfs_setfsgroups; - glfs_h_lookupat; glfs_h_creat; glfs_h_mkdir; glfs_h_mknod; @@ -163,3 +162,8 @@ GFAPI_PRIVATE_3.7.0 { glfs_resolve; glfs_process_upcall_event; } GFAPI_3.7.0; + +GFAPI_3.7.4 { + global: + glfs_h_lookupat; +} GFAPI_PRIVATE_3.7.0; -- cgit