Hi Frank,
I was not following of the recent changes to Ganesha and I understand that 
they are not complete but I just want to make sure we don't break it.
What I see is that the recent version is that fh passed on the up call is 
used as the actual fh to do delegation call back, but up call was not 
passing a full fh it is passing a key that the old code used to use for a 
look-up of the full fh in the cache_entry_t and used that full fh to 
recall delegation from the NFS client.
Am I missing something?
Thanks, Marc. 



From:   "Frank Filz" <[email protected]>
To:     Marc Eshel/Almaden/IBM@IBMUS
Cc:     "'Dan Gryniewicz'" <[email protected]>, "'nfs-ganesha-devel'" 
<[email protected]>
Date:   06/06/2016 12:13 PM
Subject:        RE: [Nfs-ganesha-devel] Posted patches that include my 
continuation of Dan's work on removing the attrlist from fsal_obj_handle



Hmm, are you testing just the one patch or the whole branch? I have a 
patch “In nfs3_Mnt.c do not release obj_handle” that should fix what you 
are seeing.
 
You can pull my latest branch from github (though maybe wait until later 
today when I have pushed an update I’m in the middle of):
 
https://github.com/ffilz/nfs-ganesha/commits/ceph-4
 
Frank
 
 
From: Marc Eshel [mailto:[email protected]] 
Sent: Friday, June 3, 2016 5:02 PM
To: Frank Filz <[email protected]>
Cc: 'Dan Gryniewicz' <[email protected]>; 'nfs-ganesha-devel' 
<[email protected]>
Subject: Re: [Nfs-ganesha-devel] Posted patches that include my 
continuation of Dan's work on removing the attrlist from fsal_obj_handle
 
FSAL_GPFS is not working  I belive that get_refis null, it crashes on the 
2nd mount.

fsal_status_t nfs_export_get_root_entry(structgsh_export *export,
                                        structfsal_obj_handle **obj)
{
        PTHREAD_RWLOCK_rdlock(&export->lock);

        if(export->exp_root_obj)
 export->exp_root_obj->obj_ops.get_ref(export->exp_root_obj);


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f949db8e700 (LWP 18072)]
0x0000000000000000 in ?? ()
(gdb) where
#0  0x0000000000000000 in ?? ()
#1  0x00000000004f6024 in nfs_export_get_root_entry (export=0x21fd7c8, 
obj=0x7f949db8c9d8) at /nas/ganesha/new-ganesha/src/support/exports.c:1554
#2  0x000000000042dbd6 in fsal_lookupp (obj=0x7f92c0000de8, 
parent=0x7f949db8ce88) at 
/nas/ganesha/new-ganesha/src/FSAL/fsal_helper.c:901
#3  0x000000000048ccb4 in nfs3_readdir (arg=0x7f9300000aa8, 
req=0x7f93000008e8, res=0x7f92b00008c0) at 
/nas/ganesha/new-ganesha/src/Protocols/NFS/nfs3_readdir.c:250
#4  0x00000000004482d0 in nfs_rpc_execute (reqdata=0x7f93000008c0) at 
/nas/ganesha/new-ganesha/src/MainNFSD/nfs_worker_thread.c:1306
#5  0x0000000000448c12 in worker_run (ctx=0x22405b0) at 
/nas/ganesha/new-ganesha/src/MainNFSD/nfs_worker_thread.c:1570
#6  0x00000000004fa3bf in fridgethr_start_routine (arg=0x22405b0) at 
/nas/ganesha/new-ganesha/src/support/fridgethr.c:550
#7  0x00007f94b3774df3 in start_thread (arg=0x7f949db8e700) at 
pthread_create.c:308
#8  0x00007f94b2e343dd in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:113
(gdb) p export
No symbol "export" in current context.
(gdb) p *export
No symbol "export" in current context.
(gdb) up
#1  0x00000000004f6024 in nfs_export_get_root_entry (export=0x21fd7c8, 
obj=0x7f949db8c9d8) at /nas/ganesha/new-ganesha/src/support/exports.c:1554
1554 export->exp_root_obj->obj_ops.get_ref(export->exp_root_obj);
(gdb) p *export
$1 = {exp_list = {next = 0x7ae230 <exportlist>, prev = 0x21f7f98}, node_k 
= {left = 0x0, right = 0x0, parent = 35618730}, exp_state_list = {next = 
0x21fd7f0, prev = 0x21fd7f0}, exp_lock_list = {
    next = 0x21fd800, prev = 0x21fd800}, exp_nlm_share_list = {next = 
0x21fd810, prev = 0x21fd810}, exp_root_list = {next = 0x21fb6b0, prev = 
0x21fb6b0}, exp_work = {next = 0x0, prev = 0x0}, 
  mounted_exports_list = {next = 0x21fd840, prev = 0x21fd840}, 
mounted_exports_node = {next = 0x21f8010, prev = 0x21f8010}, exp_root_obj 
= 0x21fb328, clients = {next = 0x21fd280, 
    prev = 0x21fdaa0}, exp_junction_obj = 0x2238688, exp_parent_exp = 
0x21f7f98, fsal_export = 0x21fe4d0, fullpath = 0x21fd370 "/gpfs/gpfs3", 
pseudopath = 0x21fd390 "/gpfs3", 
  FS_tag = 0x21fd3b0 "gpfs3", exp_mounted_on_file_id = 1, MaxRead = 
2097152, MaxWrite = 2097152, PrefRead = 2097152, PrefWrite = 2097152, 
PrefReaddir = 16384, 
  MaxOffsetWrite = 18446744073709551615, MaxOffsetRead = 
18446744073709551615, filesystem_id = {major = 666, minor = 666}, refcnt = 
3, lock = {__data = {__lock = 0, __nr_readers = 1, 
      __readers_wakeup = 0, __writer_wakeup = 0, __nr_readers_queued = 0, 
__nr_writers_queued = 0, __writer = 0, __shared = 0, __pad1 = 0, __pad2 = 
0, __flags = 0}, 
    __size = "\000\000\000\000\001", '\000' <repeats 50 times>, __align = 
4294967296}, export_perms = {anonymous_uid = 4294967294, anonymous_gid = 
4294967294, options = 120594672, set = 7467260}, 
  last_update = 207783253234, options = 0, options_set = 0, 
expire_time_attr = 60, export_id = 79, export_status = 0 '\000', 
has_pnfs_ds = true}
(gdb) p *export->exp_root_obj
$2 = {handles = {next = 0x0, prev = 0x0}, fs = 0x220f800, fsal = 0x0, 
obj_ops = {get_ref = 0x0, put_ref = 0x0, release = 0x0, merge = 0x0, 
lookup = 0x0, readdir = 0x0, create = 0x0, mkdir = 0x0, 
    mknode = 0x0, symlink = 0x0, readlink = 0x0, test_access = 0x0, 
getattrs = 0x0, setattrs = 0x0, link = 0x0, fs_locations = 0x0, rename = 
0x0, unlink = 0x0, open = 0x0, reopen = 0x0, 
    status = 0x0, read = 0x0, read_plus = 0x0, write = 0x0, write_plus = 
0x0, seek = 0x0, io_advise = 0x0, commit = 0x0, lock_op = 0x0, share_op = 
0x0, close = 0x0, list_ext_attrs = 0x0, 
    getextattr_id_by_name = 0x0, getextattr_value_by_name = 0x0, 
getextattr_value_by_id = 0x0, setextattr_value = 0x0, 
setextattr_value_by_id = 0x0, getextattr_attrs = 0x0, 
    remove_extattr_by_id = 0x0, remove_extattr_by_name = 0x0, handle_is = 
0x0, handle_digest = 0x0, handle_to_key = 0x0, handle_cmp = 0x0, layoutget 
= 0x0, layoutreturn = 0x0, layoutcommit = 0x0, 
    getxattrs = 0x0, setxattrs = 0x0, removexattrs = 0x0, listxattrs = 
0x0, open2 = 0x0, check_verifier = 0x0, status2 = 0x0, reopen2 = 0x0, 
read2 = 0x0, write2 = 0x0, seek2 = 0x0, 
    io_advise2 = 0x0, commit2 = 0x0, lock_op2 = 0x0, setattr2 = 0x0, 
close2 = 0x0}, lock = {__data = {__lock = 0, __nr_readers = 0, 
__readers_wakeup = 0, __writer_wakeup = 0, 
      __nr_readers_queued = 0, __nr_writers_queued = 0, __writer = 0, 
__shared = 0, __pad1 = 0, __pad2 = 0, __flags = 0}, __size = '\000' 
<repeats 55 times>, __align = 0}, attrs = 0x21fb1c8, 
  type = DIRECTORY, state_hdl = 0x21fb668}
(gdb) p *export->exp_root_obj->obj_ops



From:        "Frank Filz" <[email protected]>
To:        "'nfs-ganesha-devel'" <[email protected]
>, "'Dan Gryniewicz'" <[email protected]>
Date:        06/03/2016 04:37 PM
Subject:        [Nfs-ganesha-devel] Posted patches that include my 
continuation of        Dan's work on removing the attrlist from 
fsal_obj_handle




Please have a look, start to play with it, and comment...

I will resume on Monday with finishing up FSAL_GPFS, FSAL_ZFS, and 
FSAL_RGW
.

Thanks

Frank


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and 
traffic
patterns at an interface-level. Reveals which users, apps, and protocols 
are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Nfs-ganesha-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel





Virus-free. www.avast.com 




------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Nfs-ganesha-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to