The aim of this patch is to use the newly enhanced ->dirty_inode()super block operation to deal with atime updates, rather thanpiggy backing that code into ->write_inode() as is currentlydone.

The net result is a simplification of the code in various placesand a reduction of the number of gfs2_dinode_out() calls sincethis is now implied by ->dirty_inode().

Some of the mark_inode_dirty() calls have been moved under glocksin order to take advantage of then being able to avoid locking in->dirty_inode() when we already have suitable locks.

One consequence is that generic_write_end() now correctly dealswith file size updates, so that we do not need a separate checkfor that afterwards. This also, indirectly, means that fdatasyncshould work correctly on GFS2 - the current code always syncs themetadata whether it needs to or not.

Has survived testing with postmark (with and without atime) andalso fsx.