~ubuntu-branches/ubuntu/natty/linux-ti-omap/natty

« back to all changes in this revision

Viewing changes to ubuntu/aufs/i_op_add.c

  • Committer: Bazaar Package Importer
  • Author(s): Andy Whitcroft, Amit Kucheria, Imre Deak, Upstream Kernel Changes
  • Date: 2010-03-31 21:50:49 UTC
  • Revision ID: james.westby@ubuntu.com-20100331215049-8sypya8mpk81gun6
Tags: 2.6.33-500.4
[ Amit Kucheria ]

* [Config] Compile-in display subsystem
* Merge the DSS2 stack from 2.6.34-rc2 mainline tree
* SAUCE: Upgrade aufs2 to latest version for 2.6.33
  - LP: #548924
* [Config] Update configuration for new aufs2
* [Config] Fix d-i modules
* [Config] USB_STORAGE and ATA drivers can be a modules
* [Upstream] DSS2 support for Beagleboard
* [Config] Configure DSS2 based on beagle defconfig
* [Config] Enable USB OTG mode
* [Config] Enable various ethernet drivers

[ Imre Deak ]

* SAUCE: ARM: VFP: add support to sync the VFP state of the current
  thread
  - LP: #507503
* SAUCE: ARM: VFP: preserve the HW context when calling signal handlers
  - LP: #507503

[ Upstream Kernel Changes ]

* OMAP: DSS2: Add Sharp LQ043T1DG01 panel driver
* OMAP: DSS2: add Toppoly TDO35S panel
* OMAP: DSS: add TPO TD043MTEA1 panel
* OMAP: DSS2: Improve Kconfig help texts
* OMAP: DSS2: enable VDDS_DSI when using DPI
* OMAP: 3430SDP: remove vdvi regulator
* OMAP: DSS: Taal: fix error returns in taal_probe()
* OMAP: DSS2: OMAPFB: implement OMAPFB_GET_DISPLAY_INFO
* OMAP: DSS2: fix irq-stats compilation
* OMAP: DSS2: OMAPFB: Add omapfb_update_window prototype
* OMAP: DSS2: improve DSS clk src selection
* OMAP: DSS2: DSI: add dsi_bus_is_locked()
* OMAP: DSS2: DSI: add helpers for DCS read/write
* OMAP: DSS2: DSI: export dsi_vc_enable_hs()
* OMAP: DSS2: DSI: configure all DSI VCs
* OMAP: DSS2: DSI: remove dsi_vc_print_status()
* OMAP: DSS2: Check ctx loss count only when starting the first clock
* OMAP: DSS2: remove sub-panel system
* OMAP: DSS2: fix driver probe error handling
* OMAP: DSS2: OMAPFB: fix dssdev cleanup on error
* OMAP: DSS2: OMAPFB: fix cleanup on dssdev enable error
* OMAP: DSS2: fix get_dsi/dispc_clk_source() usage
* OMAP: DSS2: DSI: change DSI bus_lock to semaphore
* OMAP: DSS2: DSI: remove auto-update perf measurement
* OMAP: DSS2: move run_test()
* OMAP: DSS2: move memory_read()
* OMAP: DSS2: move set/get_mirror()
* OMAP: DSS2: move get/set_rotate()
* OMAP: DSS2: move wait_vsync()
* OMAP: DSS2: move enable/disable_channel to overlay manager
* OMAP: DSS2: move get_resolution()
* OMAP: DSS2: move get_recommended_bpp()
* OMAP: DSS2: move enable/get_te()
* OMAP: DSS2: move set/get_update_mode()
* OMAP: DSS2: move update() and sync()
* OMAP: DSS2: move enable/disable/suspend/resume
* OMAP: DSS2: move set/get_wss()
* OMAP: DSS2: move timing functions
* OMAP: DSS2: DSI: remove external TE support
* OMAP: DSS2: OMAPFB: Remove FB_OMAP2_FORCE_AUTO_UPDATE
* OMAP: DSS2: DSI: add dsi_vc_dcs_read_2() helper
* OMAP: DSS2: TPO-TD03MTEA1: fix function names
* OMAP: DSS2: DSI: add error prints
* OMAP: DSS2: OMAPFB: Constify some function parameters
* OMAP: DSS2: Taal: Fix ESD check
* OMAP: DSS2: Taal: Fix TE when resuming
* OMAP: DSS2: VRAM: Fix early_param for vram
* OMAP: DSS2: initialize dss clk sources properly
* OMAP: DSS2: panel-generic: re-implement mode changing

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright (C) 2005-2009 Junjiro R. Okajima
 
2
 * Copyright (C) 2005-2010 Junjiro R. Okajima
3
3
 *
4
4
 * This program, aufs is free software; you can redistribute it and/or modify
5
5
 * it under the terms of the GNU General Public License as published by
120
120
                }
121
121
        }
122
122
 
123
 
        err = -EIO;
 
123
        err = 0;
124
124
        /* expected parent dir is locked */
125
125
        if (unlikely(h_parent != h_dentry->d_parent))
126
 
                goto out;
127
 
        err = 0;
 
126
                err = -EIO;
128
127
 
129
128
 out:
130
129
        AuTraceErr(err);
341
340
        int err;
342
341
        struct dentry *h_src_dentry;
343
342
        struct mutex *h_mtx;
 
343
        struct file *h_file;
344
344
 
345
345
        di_read_lock_parent(a->src_parent, AuLock_IR);
346
346
        err = au_test_and_cpup_dirs(src_dentry, a->bdst);
355
355
        if (unlikely(err))
356
356
                goto out;
357
357
        mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
358
 
        err = au_sio_cpup_simple(src_dentry, a->bdst, -1,
359
 
                                 AuCpup_DTIME /* | AuCpup_KEEPLINO */);
 
358
        h_file = au_h_open_pre(src_dentry, a->bsrc);
 
359
        if (IS_ERR(h_file)) {
 
360
                err = PTR_ERR(h_file);
 
361
                h_file = NULL;
 
362
        } else
 
363
                err = au_sio_cpup_simple(src_dentry, a->bdst, a->bsrc,
 
364
                                         AuCpup_DTIME /* | AuCpup_KEEPLINO */);
360
365
        mutex_unlock(h_mtx);
 
366
        au_h_open_post(src_dentry, a->bsrc, h_file);
361
367
        au_unpin(&a->pin);
362
368
 
363
369
 out:
372
378
        struct inode *h_inode, *inode;
373
379
        struct dentry *h_src_dentry;
374
380
        struct super_block *sb;
 
381
        struct file *h_file;
375
382
 
376
383
        plink = 0;
377
384
        h_inode = NULL;
385
392
                au_set_h_dptr(src_dentry, a->bdst, dget(a->h_path.dentry));
386
393
                h_inode = au_h_dptr(src_dentry, a->bsrc)->d_inode;
387
394
                mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
388
 
                err = au_sio_cpup_single(src_dentry, a->bdst, a->bsrc, -1,
389
 
                                         AuCpup_KEEPLINO, a->parent);
 
395
                h_file = au_h_open_pre(src_dentry, a->bsrc);
 
396
                if (IS_ERR(h_file)) {
 
397
                        err = PTR_ERR(h_file);
 
398
                        h_file = NULL;
 
399
                } else
 
400
                        err = au_sio_cpup_single(src_dentry, a->bdst, a->bsrc,
 
401
                                                 -1, AuCpup_KEEPLINO,
 
402
                                                 a->parent);
390
403
                mutex_unlock(&h_inode->i_mutex);
 
404
                au_h_open_post(src_dentry, a->bsrc, h_file);
391
405
                au_set_h_dptr(src_dentry, a->bdst, NULL);
392
406
                au_set_dbstart(src_dentry, a->bsrc);
393
407
        } else {