]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: addr.c tabs
authorSage Weil <sage@newdream.net>
Tue, 4 Mar 2008 20:08:36 +0000 (12:08 -0800)
committerSage Weil <sage@newdream.net>
Tue, 4 Mar 2008 20:08:36 +0000 (12:08 -0800)
src/kernel/addr.c

index 7a4afce14525e7b3a66c46eaa5ca67366b49eb32..03b5baf3d0f7ebd86a4b8b64c453364cafec14c6 100644 (file)
@@ -105,48 +105,48 @@ static int ceph_prepare_write(struct file *filp, struct page *page,
        unsigned from, unsigned to)
 {
 /*    struct inode *inode = filp->f_dentry->d_inode;*/
-       struct inode *inode = page->mapping->host;
-       struct ceph_inode_info *ci = ceph_inode(inode);
-       struct ceph_osd_client *osdc = &ceph_inode_to_client(inode)->osdc;
-       int err = 0;
-       loff_t offset, i_size;
-
-       /*
-        * TODO:
-        *  1. check if page is up to date
-        *  2. If not, read a page to be up to date
-        */
-
-       if (PageUptodate(page))
-               return 0;
-
-       /* The given page is already up to date if it's a full page */
-       if ((to == PAGE_SIZE) && (from == 0)) {
-               SetPageUptodate(page);
-               return 0;
-       }
-
-       offset = (loff_t)page->index << PAGE_SHIFT;
-       i_size = i_size_read(inode);
-
-       if ((offset >= i_size) ||
-               ((from == 0) && (offset + to) >= i_size)) {
-               /* data beyond the file end doesn't need to be read */
-               simple_prepare_write(filp, page, from, to);
-               SetPageUptodate(page);
-               return 0;
-       }
-
-       /* Now it's clear that the page is not up to date */
-
-       err = ceph_osdc_prepare_write(osdc, inode->i_ino, &ci->i_layout,
-                                page->index << PAGE_SHIFT, PAGE_SIZE, page);
-       if (err)
-               goto out_unlock;
-
+       struct inode *inode = page->mapping->host;
+       struct ceph_inode_info *ci = ceph_inode(inode);
+       struct ceph_osd_client *osdc = &ceph_inode_to_client(inode)->osdc;
+       int err = 0;
+       loff_t offset, i_size;
+       
+       /*
+        * TODO:
+        *  1. check if page is up to date
+        *  2. If not, read a page to be up to date
+        */
+       
+       if (PageUptodate(page))
+               return 0;
+       
+       /* The given page is already up to date if it's a full page */
+       if ((to == PAGE_SIZE) && (from == 0)) {
+               SetPageUptodate(page);
+               return 0;
+       }
+       
+       offset = (loff_t)page->index << PAGE_SHIFT;
+       i_size = i_size_read(inode);
+       
+       if ((offset >= i_size) ||
+           ((from == 0) && (offset + to) >= i_size)) {
+               /* data beyond the file end doesn't need to be read */
+               simple_prepare_write(filp, page, from, to);
+               SetPageUptodate(page);
+               return 0;
+       }
+       
+       /* Now it's clear that the page is not up to date */
+       
+       err = ceph_osdc_prepare_write(osdc, inode->i_ino, &ci->i_layout,
+                                     page->index << PAGE_SHIFT, PAGE_SIZE, page);
+       if (err)
+               goto out_unlock;
+       
 out_unlock:
-       unlock_page(page);
-       return err;
+       unlock_page(page);
+       return err;
 }
 
 /*
@@ -157,44 +157,44 @@ static int ceph_commit_write(struct file *filp, struct page *page,
        unsigned from, unsigned to)
 {
 /*    struct inode *inode = filp->f_dentry->d_inode;*/
-       struct inode *inode = page->mapping->host;
-       struct ceph_inode_info *ci = ceph_inode(inode);
-       struct ceph_osd_client *osdc = &ceph_inode_to_client(inode)->osdc;
-       loff_t position = ((loff_t)page->index << PAGE_SHIFT) + to;
-       int err = 0;
-       char *page_data;
-
-       spin_lock(&inode->i_lock);
-       if (position > inode->i_size) {
-               i_size_write(inode, position);
-       }
-       spin_unlock(&inode->i_lock);
-
-       /*
-        *  1. check if page is up to date
-        *  2. If not, make the page up to date by writing a page
-        *  3. If yes, just set the page as dirty
-        */
-
-       if (!PageUptodate(page)) {
-               position = ((loff_t)page->index << PAGE_SHIFT) + from;
-
-               page_data = kmap(page);
-               err = ceph_osdc_commit_write(osdc, inode->i_ino, &ci->i_layout,
-                                page->index << PAGE_SHIFT, PAGE_SIZE, page);
-               if (err)
-                       err = 0;        /* FIXME: more sophisticated error handling */
-               kunmap(page);
-       }
-       else {
-               /* set the page as up-to-date and mark it as dirty */
-               SetPageUptodate(page);
-               set_page_dirty(page);
-       }
-
+       struct inode *inode = page->mapping->host;
+       struct ceph_inode_info *ci = ceph_inode(inode);
+       struct ceph_osd_client *osdc = &ceph_inode_to_client(inode)->osdc;
+       loff_t position = ((loff_t)page->index << PAGE_SHIFT) + to;
+       int err = 0;
+       char *page_data;
+       
+       spin_lock(&inode->i_lock);
+       if (position > inode->i_size) {
+               i_size_write(inode, position);
+       }
+       spin_unlock(&inode->i_lock);
+       
+       /*
+        *  1. check if page is up to date
+        *  2. If not, make the page up to date by writing a page
+        *  3. If yes, just set the page as dirty
+        */
+       
+       if (!PageUptodate(page)) {
+               position = ((loff_t)page->index << PAGE_SHIFT) + from;
+               
+               page_data = kmap(page);
+               err = ceph_osdc_commit_write(osdc, inode->i_ino, &ci->i_layout,
+                                            page->index << PAGE_SHIFT, PAGE_SIZE, page);
+               if (err)
+                       err = 0;        /* FIXME: more sophisticated error handling */
+               kunmap(page);
+       }
+       else {
+               /* set the page as up-to-date and mark it as dirty */
+               SetPageUptodate(page);
+               set_page_dirty(page);
+       }
+       
 /*out_unlock:*/
-       unlock_page(page);
-       return err;
+       unlock_page(page);
+       return err;
 }