<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/cifs/misc.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-02-17T23:14:44Z</updated>
<entry>
<title>CIFS: Fix oplock break handling (try #2)</title>
<updated>2011-02-17T23:14:44Z</updated>
<author>
<name>Pavel Shilovsky</name>
</author>
<published>2011-01-17T17:15:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c4eb47bcb04cbf3661bbc36e64ff12b52f36d05b'/>
<id>urn:sha1:c4eb47bcb04cbf3661bbc36e64ff12b52f36d05b</id>
<content type='text'>
commit 12fed00de963433128b5366a21a55808fab2f756 upstream.

When we get oplock break notification we should set the appropriate
value of OplockLevel field in oplock break acknowledge according to
the oplock level held by the client in this time. As we only can have
level II oplock or no oplock in the case of oplock break, we should be
aware only about clientCanCacheRead field in cifsInodeInfo structure.

Also fix bug connected with wrong interpretation of OplockLevel field
during oplock break notification processing.

Signed-off-by: Pavel Shilovsky &lt;piastryyy@gmail.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>cifs: make cifs_set_oplock_level() take a cifsInodeInfo pointer</title>
<updated>2010-11-05T17:39:01Z</updated>
<author>
<name>Pavel Shilovsky</name>
</author>
<published>2010-11-03T07:58:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c67236281c5d749741f5414103903a7c1b9c4636'/>
<id>urn:sha1:c67236281c5d749741f5414103903a7c1b9c4636</id>
<content type='text'>
All the callers already have a pointer to struct cifsInodeInfo. Use it.

Signed-off-by: Suresh Jayaraman &lt;sjayaraman@suse.de&gt;
Signed-off-by: Pavel Shilovsky &lt;piastryyy@gmail.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>CIFS: Add cifs_set_oplock_level</title>
<updated>2010-11-02T18:40:54Z</updated>
<author>
<name>Pavel Shilovsky</name>
</author>
<published>2010-11-02T09:00:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e66673e39ac9d4749bd9676dd1caf928095409f5'/>
<id>urn:sha1:e66673e39ac9d4749bd9676dd1caf928095409f5</id>
<content type='text'>
Simplify many places when we need to set oplock level on an inode.

Signed-off-by: Pavel Shilovsky &lt;piastryyy@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>cifs: update comments - [s/GlobalSMBSesLock/cifs_file_list_lock/g]</title>
<updated>2010-10-25T00:19:01Z</updated>
<author>
<name>Suresh Jayaraman</name>
</author>
<published>2010-10-18T18:22:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6573e9b73e19c0f6b9dfa2b399267ea0f42d6c6b'/>
<id>urn:sha1:6573e9b73e19c0f6b9dfa2b399267ea0f42d6c6b</id>
<content type='text'>
GlobalSMBSesLock is now cifs_file_list_lock. Update comments to reflect this.

Signed-off-by: Suresh Jayaraman &lt;sjayaraman@suse.de&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>[CIFS] move close processing  from cifs_close to cifsFileInfo_put</title>
<updated>2010-10-21T22:46:14Z</updated>
<author>
<name>Steve French</name>
</author>
<published>2010-10-21T22:46:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cdff08e76612e53580139653403aedea979aa639'/>
<id>urn:sha1:cdff08e76612e53580139653403aedea979aa639</id>
<content type='text'>
Now that it's feasible for a cifsFileInfo to outlive the filp under
which it was created, move the close processing into cifsFileInfo_put.

This means that the last user of the filehandle always does the actual
on the wire close call. This also allows us to get rid of the closePend
flag from cifsFileInfo. If we have an active reference to the file
then it's never going to have a close pending.

cifs_close is converted to simply put the filehandle.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Reviewed-by: Suresh Jayaraman &lt;sjayaraman@suse.de&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>cifs: convert cifs_tcp_ses_lock from a rwlock to a spinlock</title>
<updated>2010-10-21T13:14:27Z</updated>
<author>
<name>Suresh Jayaraman</name>
</author>
<published>2010-10-18T17:59:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f9bcca7820a6711307b6499952b13cfcfc31dd6'/>
<id>urn:sha1:3f9bcca7820a6711307b6499952b13cfcfc31dd6</id>
<content type='text'>
cifs_tcp_ses_lock is a rwlock with protects the cifs_tcp_ses_list,
server-&gt;smb_ses_list and the ses-&gt;tcon_list. It also protects a few
ref counters in server, ses and tcon. In most cases the critical section
doesn't seem to be large, in a few cases where it is slightly large, there
seem to be really no benefit from concurrent access. I briefly considered RCU
mechanism but it appears to me that there is no real need.

Replace it with a spinlock and get rid of the last rwlock in the cifs code.

Signed-off-by: Suresh Jayaraman &lt;sjayaraman@suse.de&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>cifs: convert GlobalSMBSeslock from a rwlock to regular spinlock</title>
<updated>2010-10-18T01:32:01Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2010-10-15T19:34:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4477288a103631980750c86547d1fd54bfd2ba7d'/>
<id>urn:sha1:4477288a103631980750c86547d1fd54bfd2ba7d</id>
<content type='text'>
Convert this lock to a regular spinlock

A rwlock_t offers little value here. It's more expensive than a regular
spinlock unless you have a fairly large section of code that runs under
the read lock and can benefit from the concurrency.

Additionally, we need to ensure that the refcounting for files isn't
racy and to do that we need to lock areas that can increment it for
write. That means that the areas that can actually use a read_lock are
very few and relatively infrequently used.

While we're at it, change the name to something easier to type, and fix
a bug in find_writable_file. cifsFileInfo_put can sleep and shouldn't be
called while holding the lock.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Reviewed-by: Suresh Jayaraman &lt;sjayaraman@suse.de&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>cifs: keep dentry reference in cifsFileInfo instead of inode reference</title>
<updated>2010-10-12T18:06:42Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2010-10-11T19:07:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5e18bc36e9e05ce0338d370a2ce4290910e43ea'/>
<id>urn:sha1:a5e18bc36e9e05ce0338d370a2ce4290910e43ea</id>
<content type='text'>
cifsFileInfo is a bit problematic. It contains a reference back to the
struct file itself. This makes it difficult for a cifsFileInfo to exist
without a corresponding struct file.

It would be better instead of the cifsFileInfo just held info pertaining
to the open file on the server instead without any back refrences to the
struct file. This would allow it to exist after the filp to which it was
originally attached was closed.

Much of the use of the file pointer in this struct is to get at the
dentry.  Begin divorcing the cifsFileInfo from the struct file by
keeping a reference to the dentry. Since the dentry will have a
reference to the inode, we can eliminate the "pInode" field too and
convert the igrab/iput to dget/dput.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Reviewed-by: Suresh Jayaraman &lt;sjayaraman@suse.de&gt;
Acked-by: Dave Kleikamp &lt;shaggy@linux.vnet.ibm.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>cifs: add cifs_sb_master_tcon and convert some callers to use it</title>
<updated>2010-09-29T19:04:33Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2010-09-20T23:01:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d424ad0a4b8c08e45928bccfa5b4b240097b01b'/>
<id>urn:sha1:0d424ad0a4b8c08e45928bccfa5b4b240097b01b</id>
<content type='text'>
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 &lt;jlayton@redhat.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>cifs: add function to get a tcon from cifs_sb</title>
<updated>2010-09-29T19:04:32Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2010-09-20T23:01:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8'/>
<id>urn:sha1:a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8</id>
<content type='text'>
When we convert cifs to do multiple sessions per mount, we'll need more
than one tcon per superblock. At that point "cifs_sb-&gt;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-&gt;tcon. Later it'll do more.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
</content>
</entry>
</feed>
