|
From: | Da Zheng |
Subject: | Re: What operations in store_parsed_open() need the privilege? |
Date: | Wed, 27 Aug 2008 23:32:29 +0200 |
User-agent: | Thunderbird 2.0.0.16 (Macintosh/20080707) |
Thomas Bushnell BSG wrote:
On Wed, 2008-08-27 at 03:48 +0200, Da Zheng wrote:It sounds as if you got EPERM from store_parse_open, but proc_getprivports is not being called, so you are having trouble understanding why you got an error message at all.Yes, exactly.I run subhurd with "boot servers.boot /dev/hd1", so the libstore should read the disk.This will depend much on what the store specification was which was passed to store_parse_open. Can you provide more details?I believe it fails inside boot's main() function when boot attempts a store_parsed_open on /dev/hd1. Why would you expect your proc server to have anything to do with that?
I know boot fails and gets EPERM when it calls store_parsed_open, but I need to know what operations inside store_parsed_open() fail. Otherwise, I don't know how to fix it.
I looked into the code of libstore again and inserted some debugging print in libstore (I did it before, but I forgot to set LD_LIBRARY_PATH so boot can link to the modified libstore.so when I ran subhurd. I was so stupid).
I find the problem now.When I run "boot servers.boot /dev/hd1", the store_class is actually store_query_class, and store_open() is called to open "/dev/hd1". So the error EPERM is actually returned by file_name_lookup() in store_open(). I always thought dev_open() would be called. No wonder that I didn't see proc_getprivports() was called.
Zheng Da
[Prev in Thread] | Current Thread | [Next in Thread] |