30 Nov, 2010

1 commit

  • Currently, if CONFIG_CIFS_FSCACHE is set, fscache is enabled on files opened
    as read-only irrespective of the 'fsc' mount option. Fix this by enabling
    fscache only if 'fsc' mount option is specified explicitly.

    Remove an extraneous cFYI debug message and fix a typo while at it.

    Reported-by: Jeff Layton
    Acked-by: Jeff Layton
    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman
     

30 Sep, 2010

2 commits

  • At mount time, we'll always need to create a tcon that will serve as a
    template for others that are associated with the mount. This tcon is
    known as the "master" tcon.

    In some cases, we'll need to use that tcon regardless of who's accessing
    the mount. Add an accessor function for the master tcon and go ahead and
    switch the appropriate places to use it.

    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     
  • When we convert cifs to do multiple sessions per mount, we'll need more
    than one tcon per superblock. At that point "cifs_sb->tcon" will make
    no sense. Add a new accessor function that gets a tcon given a cifs_sb.
    For now, it just returns cifs_sb->tcon. Later it'll do more.

    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

02 Aug, 2010

6 commits

  • Read pages from a FS-Cache data storage object into a CIFS inode.

    Signed-off-by: Suresh Jayaraman
    Acked-by: David Howells
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Store pages from an CIFS inode into the data storage object associated with
    that inode.

    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Takes care of invalidation and release of FS-Cache marked pages and also
    invalidation of the FsCache page flag when the inode is removed.

    Signed-off-by: Suresh Jayaraman
    Acked-by: David Howells
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Define inode-level data storage objects (managed by cifsInodeInfo structs).
    Each inode-level object is created in a super-block level object and is itself
    a data storage object in to which pages from the inode are stored.

    The inode object is keyed by UniqueId. The coherency data being used is
    LastWriteTime, LastChangeTime and end of file reported by the server.

    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Define superblock-level cache index objects (managed by cifsTconInfo structs).
    Each superblock object is created in a server-level index object and in itself
    an index into which inode-level objects are inserted.

    The superblock object is keyed by sharename. The UniqueId/IndexNumber is used to
    validate that the exported share is the same since we accessed it last time.

    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Define server-level cache index objects (as managed by TCP_ServerInfo structs)
    and register then with FS-Cache. Each server object is created in the CIFS
    top-level index object and is itself an index into which superblock-level
    objects are inserted.

    The server objects are now keyed by {IPaddress,family,port} tuple.

    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman