<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/gfs2/inode.c, branch linux-3.11.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.11.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.11.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-08-19T08:33:57Z</updated>
<entry>
<title>GFS2: Check for glock already held in gfs2_getxattr</title>
<updated>2013-08-19T08:33:57Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-08-16T20:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7bd9ee58a4fe026514266757e812cb89c3c945eb'/>
<id>urn:sha1:7bd9ee58a4fe026514266757e812cb89c3c945eb</id>
<content type='text'>
Since the introduction of atomic_open, gfs2_getxattr can be
called with the glock already held, so we need to allow for
this.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Reported-by: David Teigland &lt;teigland@redhat.com&gt;
Tested-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Fix typo in gfs2_create_inode()</title>
<updated>2013-08-19T08:32:29Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-07-17T07:11:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2523d47a798b5d985ba404d0d793270494ccf6e9'/>
<id>urn:sha1:2523d47a798b5d985ba404d0d793270494ccf6e9</id>
<content type='text'>
PTR_RET should be PTR_ERR

Reported-by: Sachin Kamat &lt;sachin.kamat@linaro.org&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Add atomic_open support</title>
<updated>2013-06-14T10:17:15Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-06-14T10:17:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d4ade986f9c8df31e68fd30643997f79cc5a5f8'/>
<id>urn:sha1:6d4ade986f9c8df31e68fd30643997f79cc5a5f8</id>
<content type='text'>
I've restricted atomic_open to only operate on regular files, although
I still don't understand why atomic_open should not be possible also for
directories on GFS2. That can always be added in later though, if it
makes sense.

The -&gt;atomic_open function can be passed negative dentries, which
in most cases means either ENOENT (-&gt;lookup) or a call to d_instantiate
(-&gt;create). In the GFS2 case though, we need to actually perform the
look up, since we do not know whether there has been a new inode created
on another node. The look up calls d_splice_alias which then tries to
rehash the dentry - so the solution here is to simply check for that
in d_splice_alias. The same issue is likely to affect any other cluster
filesystem implementing -&gt;atomic_open

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: "J. Bruce Fields" &lt;bfields fieldses org&gt;
Cc: Jeff Layton &lt;jlayton@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Only do one directory search on create</title>
<updated>2013-06-11T12:45:29Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-06-11T12:45:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a00f3cc978be45b9d2597851bedaa40630bc597'/>
<id>urn:sha1:5a00f3cc978be45b9d2597851bedaa40630bc597</id>
<content type='text'>
Creation of a new inode requires a directory search in order to ensure
that we are not trying to create an inode with the same name as an
existing one. This was hidden away inside the create_ok() function.

In the case that there was an existing inode, and a lookup can be
substituted for a create (which is the case with regular files
when the O_EXCL flag is not in use) then we were doing a second
lookup in order to return the inode.

This patch merges these two lookups into one. This can be done by
passing a flag to gfs2_dir_search() to tell it to just return -EEXIST
in the cases where we don't actually want to look up the inode.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Cocci spatch "ptr_ret.spatch"</title>
<updated>2013-06-05T08:51:08Z</updated>
<author>
<name>Thomas Meyer</name>
</author>
<published>2013-06-01T09:52:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2b6f8860e1df8ab318063765892e1a02cc5996c9'/>
<id>urn:sha1:2b6f8860e1df8ab318063765892e1a02cc5996c9</id>
<content type='text'>
Use PTR_RET in place of open coding this function.

Signed-off-by: Thomas Meyer &lt;thomas@m3y3r.de&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Don't cache iopen glocks</title>
<updated>2013-06-03T15:40:22Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2013-05-29T15:51:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a6a4d98b0124b5d3befe8b3a99f51f1b4fcc6dcf'/>
<id>urn:sha1:a6a4d98b0124b5d3befe8b3a99f51f1b4fcc6dcf</id>
<content type='text'>
This patch makes GFS2 immediately reclaim/delete all iopen glocks
as soon as they're dequeued. This allows deleters to get an
EXclusive lock on iopen so files are deleted properly instead of
being set as unlinked.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Use gfs2_dinode_out() in the inode create path</title>
<updated>2013-04-08T07:40:37Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-03-01T09:29:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=79ba74808df1132d9ddbf4e87304a4050e667e3e'/>
<id>urn:sha1:79ba74808df1132d9ddbf4e87304a4050e667e3e</id>
<content type='text'>
Over the previous two patches relating to inode creation, the
content of init_dinode() has been looking more and more like
gfs2_dinode_out(). This is not an accident! This patch replaces
the parts of init_dinode() which are duplicated in gfs2_dinode_out()
with a call to that function.

Mostly that is straightforward, but there is one issue which needed
to be resolved relating to the link count. The link count has to be
set to zero in a certain error handling code path, which lands up
calling iput(). This is now done specifically in that code path
allowing the link count to be set earlier and written into the
on disk inode by gfs2_dinode_put() in the normal way.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Remove gfs2_refresh_inode from inode creation path</title>
<updated>2013-04-08T07:40:17Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-02-26T19:09:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=28fb30275570e9397e551d6f8e3bfd78862ea79e'/>
<id>urn:sha1:28fb30275570e9397e551d6f8e3bfd78862ea79e</id>
<content type='text'>
The original method for creating inodes used in GFS2 was to fill
out a buffer, with all the information, and then to read that
buffer into the in-core inode, using gfs2_refresh_inode()

The problem with this approach is that all the inode's fields
need to be calculated ahead of time, and were stored in various
variables making the code rather complicated.

The new approach is simply to allocate the in-core inode earlier
and fill in as many fields as possible ahead of time. These can
then be used to initilise the on disk representation. The
code has been working towards the point where it is possible
to remove gfs2_refresh_inode() because all the fields are
correctly initialised ahead of time. We've now reached that
milestone, and have reversed the order of setting up the in
core and on disk inodes.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Clean up inode creation path</title>
<updated>2013-04-08T07:39:56Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2013-02-26T16:15:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd4b4e042c6aac980ccac0e829aa1378d2c17bd5'/>
<id>urn:sha1:fd4b4e042c6aac980ccac0e829aa1378d2c17bd5</id>
<content type='text'>
This patch cleans up the inode creation code path in GFS2. After the
Orlov allocator was merged, a number of potential improvements are
now possible, and this is a first set of these.

The quota handling is now updated so that it matches the point in
the code where the allocation takes place. This means that the one
exception in gfs2_alloc_blocks relating to quota is now no longer
required, and we can use the generic code everywhere.

In addition the call to figure out whether we need to allocate any
extra blocks in order to add a directory entry is moved higher up
gfs2_create_inode. This means that if it returns an error, we
can deal with that at a stage where it is easier to handle that case.
The returned status cannot change during the function since we hold
an exclusive lock on the directory.

Two calls to gfs2_rindex_update have been changed to one, again at
the top of gfs2_create_inode to simplify error handling.

The time stamps are also now initialised earlier in the creation
process, this is gradually moving towards being able to remove the
call to gfs2_refresh_inode in gfs2_inode_create once we have all the
fields covered.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace</title>
<updated>2013-02-26T00:00:49Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2013-02-26T00:00:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=94f2f14234178f118545a0be60a6371ddeb229b7'/>
<id>urn:sha1:94f2f14234178f118545a0be60a6371ddeb229b7</id>
<content type='text'>
Pull user namespace and namespace infrastructure changes from Eric W Biederman:
 "This set of changes starts with a few small enhnacements to the user
  namespace.  reboot support, allowing more arbitrary mappings, and
  support for mounting devpts, ramfs, tmpfs, and mqueuefs as just the
  user namespace root.

  I do my best to document that if you care about limiting your
  unprivileged users that when you have the user namespace support
  enabled you will need to enable memory control groups.

  There is a minor bug fix to prevent overflowing the stack if someone
  creates way too many user namespaces.

  The bulk of the changes are a continuation of the kuid/kgid push down
  work through the filesystems.  These changes make using uids and gids
  typesafe which ensures that these filesystems are safe to use when
  multiple user namespaces are in use.  The filesystems converted for
  3.9 are ceph, 9p, afs, ocfs2, gfs2, ncpfs, nfs, nfsd, and cifs.  The
  changes for these filesystems were a little more involved so I split
  the changes into smaller hopefully obviously correct changes.

  XFS is the only filesystem that remains.  I was hoping I could get
  that in this release so that user namespace support would be enabled
  with an allyesconfig or an allmodconfig but it looks like the xfs
  changes need another couple of days before it they are ready."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (93 commits)
  cifs: Enable building with user namespaces enabled.
  cifs: Convert struct cifs_ses to use a kuid_t and a kgid_t
  cifs: Convert struct cifs_sb_info to use kuids and kgids
  cifs: Modify struct smb_vol to use kuids and kgids
  cifs: Convert struct cifsFileInfo to use a kuid
  cifs: Convert struct cifs_fattr to use kuid and kgids
  cifs: Convert struct tcon_link to use a kuid.
  cifs: Modify struct cifs_unix_set_info_args to hold a kuid_t and a kgid_t
  cifs: Convert from a kuid before printing current_fsuid
  cifs: Use kuids and kgids SID to uid/gid mapping
  cifs: Pass GLOBAL_ROOT_UID and GLOBAL_ROOT_GID to keyring_alloc
  cifs: Use BUILD_BUG_ON to validate uids and gids are the same size
  cifs: Override unmappable incoming uids and gids
  nfsd: Enable building with user namespaces enabled.
  nfsd: Properly compare and initialize kuids and kgids
  nfsd: Store ex_anon_uid and ex_anon_gid as kuids and kgids
  nfsd: Modify nfsd4_cb_sec to use kuids and kgids
  nfsd: Handle kuids and kgids in the nfs4acl to posix_acl conversion
  nfsd: Convert nfsxdr to use kuids and kgids
  nfsd: Convert nfs3xdr to use kuids and kgids
  ...
</content>
</entry>
</feed>
