Browse Prior Art Database

File System Request Reflection within the OS/2 DFS Client

IP.com Disclosure Number: IPCOM000115615D
Original Publication Date: 1995-May-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 82K

Publishing Venue

IBM

Related People

Ault, MB: AUTHOR [+4]

Abstract

A method for reflecting OS/2* file system requests to a ring 3 process for servicing. A technique used by the OS/2 Distributed File System (DFS) client.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 53% of the total text.

File System Request Reflection within the OS/2 DFS Client

      A method for reflecting OS/2* file system requests to a ring 3
process for servicing.  A technique used by the OS/2 Distributed File
System (DFS) client.

      The OS/2 DFS Client developers were faced with the problem of
"how to process file system requests which can only be serviced by
code running at ring 3."   The DFS Client is an application relative
to the DCE (Distributed Computing Environment) core components upon
which it runs.  As such, it was required to communicate with the DCE
core components at ring 3 to gain access to the DFS file server
machine.

      File systems on the OS/2 platform are typically implemented by
OS/2 IFS (installable file system) drivers which run at ring 0.  The
servicing of a request by an IFS driver is typically performed either
by accessing a local disk, or by accessing a device driver which can
send the request to another machine for servicing.  No communication
with ring 3 code is usually necessary.   In this case, however, the
bulk of the DFS Client code would be required to run at ring 3.

      The solution to the problem was to write an IFS driver which
serves simply as a file system request router.  File system requests
directed to it would simply be reflected to a separate ring 3 DFS
Client process for servicing, and returned to the IFS driver when
completed.

      The IFS driver for the DFS Client shares addressability to
several data areas with a DFS Client process which runs at ring 3,
and which interfaces with the DCE core components.  These shared data
areas include:
  o  A set of request buffers.  One buffer is used to communicate one
      file system request between ring 0 and ring 3.
  o  A set of request buffer semaphores (one per request buffer)
  o  A buffer queue (a queue of buffer addresses that are ready for
      servicing by the ring 3 DFS Client code)
  o  A request waiting semaphore (the semaphore upon which threads of
      the ring 3 DFS process sleep waiting for requests from the IFS
      driver)

The servicing of a DFS Client request proceeds as follows:
  1.  An application program issues a file system request that is
       directed to one of the logical drives associated with...