On Tue, Oct 23, 2012 at 6:33 PM, Abhijit Chandrakant Pawar < abhi.c.pa...@gmail.com> wrote:
> ** > I am working on the layered file systems. I came across a function called > set_super_anon. > This is a callback to the sget function to compare the superblock . This > function accepts two parameters. first is superblock * and second is void > *. If you look at the definition of this function, the void* is never > used. > Many filesystem uses this function when they are mounting the superblock. > Some pass NULL and some pass actual data.I have looked till 2.6.31 but > there isnt any trace of the usage of second parameter. > > If it is never used then why its added to the function param list? Is > there any historical reason during the older kernel days? > > Regards, > Abhijit Pawar > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > Hi Abhijit, See the issue is this function is passed as an argument to sget(), now their are many other file-systems that defined their own set_super function & for that they need data argument where they usually pass mount-related data For eg. see the definition and usage of function nfs_set_super(). So, the prototype of the sget() should contain function ptr (set_super()) and this function ptr should have data argument also. Now one usage can imply NO USE of the data parameter, which is set_super_anon, but other file-systems may require, so the sget() prototype should be generic to support, both the cases. - Rohan
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies